Skip to content

Instantly share code, notes, and snippets.

What would you like to do?

Implementer's Call 17


Nimbus notes

Closed agenda for past 6 months:


  • Optimization of state hashing
  • Started on 0.6, state transition changes partially done current focus is get_beacon_proposer_index rework which is a blocker for several other updates:
    • fork choice tests
    • State pooling
  • found underflows due to GENESIS_EPOCH, interested in other statically compiled language experience that use unsigned int. --> PR up at spec level
  • SOS: design stage, how to read fields without deserializing everything. (beyond naive SSZ-like implementation)


  • NAT traversal added to our beacon chain simulator
  • Testnet fixed on windows (windows socket issue in NAT traversal)
  • currently implementing chunked encoding
  • Q on streams vs transports in async networking


  • Happy to see the update test suite, surprised by how easy git lfs was to use/clone
  • currently working on shuffling as state tests are missing and SSZ is not yet SOS updated
  • Some issues with our mock blocks and mock attestations

Testing updates


  • no big updates
  • merging of tests, coming for 0.6.1 or 0.6.x
  • minimal_ssz with SOS incoming, issues with typing

Client updates

  • Nimbus

  • Lodestar - Greg Markou

    • Up-to-date with 0.6 SSZ
    • merged floodsub, and will use that as testing ground
    • fixes on herumi/bls
    • started separating validators from the beacon chain
  • Pegasys - Joseph Delong

    • master still on 0.4
    • branch in 0.5.1 (currently working on SSZ)
    • added json and timeseries logging
    • troubleshooting issues with validators
  • Harmony - Dmitrii

    • Incremental hashing finished
    • Added Benchmark tools on spec methods
      • Display how many times methods are called and how much time they consume
    • v0.6.0 target for tomorrow
    • work on sync protocol
  • Prysmatic - Raul Jordan

    • Getting privately some testers
    • Public would be using v0.4
  • Trinity - Hsiao-Wei Wang

    • (?) data service
    • Test suite 0.5.1
      • 0.6.1 upgrade next week
    • Fork choice and beacon chain plugin (?) WIP
  • Lighthouse - Adrian Manning

    • Assisting BLS standardization efforts
    • Implemented cache merkle hashing to solve (?) perf issues/catching up
    • How to implement discv5 in the context of libp2p
  • Parity - Absent

  • Yeeth - Absent

  • Geth - Absent

Research updates

Networking updates

  • Raul
    • Gossipsub async validators
      • PR under review for go-libp2p
      • available in the daemon in the coming weeks
    • (?)
    • experimental flag introduced in IPFS
    • TLS 1.3 (?)
    • Noisy (?) handshakes: request for design/experience
    • Dedicated engineer for spec hired
    • libp2p at scale: first step, network simulation
      • need Virtual NIC, configure jitter, and other variety in network conditions --> interested in building open interest group => contact Raul
    • 0x will compile go-libp2p to the browser via WASM
      • webRTC (?)
    • Decentralized hole-punching: ideas?
    • Upcoming IPFScon in Barcelona in 27th of June
    • Dedicated courses for libp2p hackers, to go from A to Z => contact Raul

=> on going conversation in ethereum/devp2p gitter

  • Adrian on summarizing the conversation once done

Whiteblocks absent (Q on gossipsub testing by Danny)

Pending PRs no question

Spec discussion v0.6.1 almost ready bug fixes and cosmetic fixes tests will be updated

more extensive tests for 0.6.1 in a week


  • Different slot duration for beacon chain and shards: 8 or 10 seconds? -> more robust -> remove the minimum attestation inclusion delay

Danny: Note it would not increase time to finality if we include more committees.

Crypto puzzle, time-capsule and VDF day (Justin)

Discussion on why SSZ changes to List/Vectors

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment