In this article, I investigate the current state of the portal network, including which specs are ready, what has been implemented, and how I can potentially contribute.
Last year at Devcon 6, I saw 'The Portal Network by Piper Merriam'. He said, "We're past the research stage, we're purely in the 'get it built and get it out the door' stage."
Portal Network Timeline at Devcon 6
At 'EDCON2023', Piper says, "Right now you can fetch arbitrary history from the network, up next is the ability to follow the beacon chain using only portal protocols." He also added, "Until a couple months ago (~March 2023), the team was kind of building into the void, but lately, some monitoring and testing tools have helped speed up the development process."
From the other EDCON2023 talk, "The history network is generally feature-complete; we're in the bug-squashing stage. The team is starting on the beacon chain protocol."
In the project ideas from the EPF, there are some suggestions:
By ogenev
Improve Portal Network interop tests (portal-hive), Portal State Network R&D, Portal DAS Network R&D
By Mike Ferris
Portal Network Glados: https://github.com/Ethereum/glados
The most interesting thing here is R&D for the Portal State Network and the Portal DAS Network. This confirms that the History network is complete and now the development of the other networks is getting traction.
Specs for all the networks can be found it the portal-network-spec repo.
THE SPEC IS IN A STATE OF FLUX AND SHOULD BE CONSIDERED UNSTABLE
NOTE: This specification is a work in progress.
Moving on to Trin. One of the first lines of the readme says:
The Portal Network is still in the research phase, and this client is experimental.
This confused me last week. But now, I know that the network has some components live, and my work would not be only research. The readme was updated two months ago.
Experimental Status
Trin is a prototype Portal Network client. This implementation and the Portal Network specifications will continue to co-evolve.
In this stage of development, Trin lacks comprehensive data validation.
I tried to use Trin, but I encountered some problems when compiling and then when setting up the network. It doesn't feel ready to use right now; I guess it really is a prototype 😅
Looking deeper into the repo, there are some interesting issues. One that seems especially important is #623, which aims to prototype a Canon Transactions network. This might be a good project.
There are also other smaller issues/good first issues that would help me get familiar with the codebase.