github.com/EOS-Mainnet/genesis

An animated time-lapse of how EOS-Mainnet/genesis was built, commit by commit.

Open this visualization on its own page →

Contributors

5

Lines of Code

1,227

From

2017-08-30

To

2018-06-01

About EOS-Mainnet/genesis

The EOS Snapshot Generator is a Node.js tool designed to aggregate the complete EOS ERC20 token distribution from the Ethereum blockchain and generate deterministic snapshots of token balances at any period before the token freeze, or final snapshots after freezing. It serves the technical infrastructure needs of the EOS network launch by capturing who held tokens and in what quantities at specific points in time.

The tool works by syncing Ethereum blockchain data through a Parity node, storing transaction history in a MySQL database, and processing that data through an extract-transform-load pipeline to produce multiple output files including a primary snapshot with registered addresses and their EOS keys, an unregistered snapshot for addresses without valid key registrations, and a full distribution file with all balances. It includes sophisticated validation logic, fallback registration mechanisms that can derive EOS keys from Ethereum public keys for unregistered addresses, and deterministic indexing to ensure reproducible results across different runs.

The project targets experienced operators with significant infrastructure requirements, demanding 16GB+ RAM, SSD storage, and a fully-synced Ethereum node that can take 3-4 days to initialize. Configuration is extensive and can be handled through config files, command-line prompts, or startup parameters, with options for resumable syncs, wallet recalculation, and polling for new periods. The tool includes comprehensive testing mechanisms to validate data integrity and produce detailed metadata about each snapshot session.

Share this video