x19(@0xNineteen) 's Twitter Profile Photo

seeing a ton of AI engineers pivoting into to crypto recently

my advice: learn rust - its everywhere in this industry

- theres only so much you can do with python
- start with rust smart contracts (svm)
- then move to rust L1s (solana/reth/aptos/sui/...)

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

in the next version of Sig 🤖

well support downloading snapshots with minimum download speed requirements and trusted peers

thread for how it works under-the-hood /N ↓

in the next version of Sig 🤖

well support downloading snapshots with minimum download speed requirements and trusted peers

thread for how it works under-the-hood /N ↓
account_circle
x19(@0xNineteen) 's Twitter Profile Photo

value is created through constant iteration

if your iteration cycle is slow - ngmi

especially in code and hiring
- how fast can you go from idea to merged on main
- how fast can you go from intro call to hired

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

the SnapshotHash structure is a gossip datatype which contains
- the largest full snapshot
- and a list of incremental snapshots

when downloading,
- we prioritize larger slots
- and only download snapshots whos hashes are the same as our trusted peers

github.com/Syndica/sig/bl…

the SnapshotHash structure is a gossip datatype which contains
- the largest full snapshot
- and a list of incremental snapshots 

when downloading,
- we prioritize larger slots
- and only download snapshots whos hashes are the same as our trusted peers

github.com/Syndica/sig/bl…
account_circle
x19(@0xNineteen) 's Twitter Profile Photo

then for each peer, we download with the following urls:
- full:
http://{ip}:{rpc-port}//snapshot-{slot}-{hash}.tar.zstd

- incremental:
http://{ip}:{rpc-port}//incremental-snapshot-{base_slot}-{slot}-{hash}.tar.zstd

if the download speed is slow, we try another peer

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

especially relevant link on building products through iteration - and how tech debt is an exponential slow down on value creation

x.com/1ultd/status/1…

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

if you find this stuff interesting

come join the sig team and help build a new solana validator from scratch in zig

jobs.ashbyhq.com/syndica/15ab4e…

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

for example, if the network is on slot 100, the full snapshot could contain all accounts at slot 75, and a matching incremental snapshot could contain all accounts that changed between slot 75 and slot 100

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

first, theres two types of snapshots: full snapshots and incremental snapshots

full snapshots include all the accounts on the network at some specific slot

incremental snapshots are smaller and only contain the accounts which changed from a full snapshot.

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

to download a snapshot, gossip is started up to find other nodes in the network and collect gossip data

we look for peers who:
- have a matching shred version (ie, the network version/hard-forks)
- have a valid rpc socket (ie, can download from)
- and have a SnapshotHash

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

and thats all - thanks for reading till the end :)

all the code can be found in src/accountsdb/download.zig

github.com/Syndica/sig/bl…

account_circle
x19(@0xNineteen) 's Twitter Profile Photo

BW we wait 30seconds before evaluating the speed

we also sample 1k peers from the gossip table each iteration - the loop doesnt exit until a snapshot's downloaded

thats what we got rn but still evaluating different parameters

account_circle