We have not been giving development updates for quite a while, so here is a more high level update of items that we have been working on the rest of the year.
MasterAccumulator
and EpochAccumulator
content types and related functionalityMasterAccumulator
and adding itEpochAccumulator
for each header to verify.eth_data_exporter
tool:
portal_historyOffer
(e.g. by using existing eth-portal bridge tool)eth_getLogs
JSON-RPC API call.eth_getBlockByNumber
by requesting the right EpochAccumulatorblockwalk
tool to walk down blocks starting from a specific hash and test their availability on the history Portal network.content_verifier
tool that verifies availability of all epoch accumulators on the network (should eventually be able to verify all types and might be merged with blockwalk
tool).The past two months most work has gone into:
Seeding data for the history sub-network was first tested successfully with the local testnet script. This script launches n (default 64) nodes on the machine where you run it and then seeds them with block data (only 20 blocks default). It is then tested of these blocks can be retrieved through lookups in the network.
Next, once the fleet of Fluffy nodes was up and running, data was seeded into that network. Only 2500 mainnet blocks (headers + bodies) were seeded initially, and these blocks are retrievable from this public network.
This means that one can start a Fluffy node, connect to this testnet and retrieve the first 2500 blocks from the network. More will be added soon after some optimisations.
A small testing tool "blockwalk" was added to test a range of blocks their availability on the Portal history sub-network (a sort of cli baby block explorer).
Work went also in testing interopability with Ultralight and Trin clients, which resulted in some Portal spec clarifications.
The Fluffy fleet is now also linked with the Trin and Ultralight bootstrap nodes, which means you can join the network by bootstrapping from any of these bootstrap nodes.
More details:
eth_getBlockbyHash
portal_<network>_nodeInfo
, portal_<network>_routingTableInfo
and portal_<network>_recursiveFindNodes
.getContent
call for state and history network:
discv5_nodeInfo
Most of the development focus went to providing Fluffy with a json-rpc proxy and starting to support state content searches.
FoundContent
& FoundNodes
responsesnode_key
/ node_id
bridge_getBlockWitness
Development is mainly in these areas, with the usual little issues and fixes throughout the code tree not listed here (see GitHub for those).
The last couple of months has seen some bold deep dives:
snap/1
protocol where available to speed up Beam sync furthersnap/1
the standard protocolsnap/1
so as to to minimise I/O load on peers is an interesting problem