To start, happy new year! What an incredible year it has turned out to be. With a bit of fortune, we’ll exceed last year’s achievements with an even more remarkable year. It feels like ages since I last shared an update regarding my progress and that of the Go team, largely because of time constraints. I’ve been extraordinarily occupied and so many events have transpired these past two months that I’ve scarcely had a moment to reflect on it all.
As you might already know, the audit is fast approaching, and my precious project (go-ethereum!) is soon to undergo a thorough examination. The audit teams will rigorously evaluate it to ensure the repository does not contain any improperly executed elements and to look for significant security vulnerabilities in the architecture and execution. We’ve been quite solid with our tests, examining implementation specifics and consensus tests (thanks to Christoph), and will persist in adding further tests over time. We shall see how they perform during the audit (although I believe we will be fine, it’s still a bit nerve-racking (-:)
Development
PoC-7 has been available for about a week now and has proven to be fairly stable (and increasing in size!). We are already diligently working towards finalizing PoC-8, which entails several minor adjustments:
- Restored block time to 12s (previously 4s)
- The opcode PREVHASH has been renamed to BLOCKHASH( N ) , thus making PREVHASH = BLOCKHASH(NUMBER – 1)
- We’ve introduced an extra pre-compiled contract at address 0x04 that returns the input provided (functions similarly to copy / memcpy)
Ongoing
P2P
Felix has been diligently working on our new P2P package, which has now progressed to v0.1 (PoC-7), and will soon receive its first upgrade for PoC-8. Felix has done an exceptional job with the design of this package, making it a genuine pleasure to collaborate with. The auto-generated documentation can be found at GoDoc.
Whisper
About a month ago, I completed the initial draft of Whisper for the Go implementation, which now proficiently transmits whisper messages throughout the network and utilizes the aforementioned P2P package. The Go API is fairly straightforward and necessitates nearly no setup.
Backend
The backend framework of ethereum has also experienced its first significant (well-deserved) renovation. Viktor has been exceptionally dedicated in reimplementing the download manager and the ethereum sub protocol.
Swarm
Since Dani joined the team, he has been fervently focused on the peer selection algorithm and distributed preimage archive. The DPA will serve our Swarm technology. The specification is approximately 95% complete, with about 50% already implemented. Progress is robust!
Both go-ethereum/p2p and go-ethereum/whisper have been constructed such that they do not depend on ethereum to function. If you are developing in Go and your application requires a P2P network or (dark) messaging, give the packages a try. An example sub protocol can be located here and an example of how to utilize Whisper can be found here.
Ams Hub
Now that the hub is officially established, you’re welcome to stop by for a coffee with us. You can find us in the rather elegant area of Amsterdam Zuid near Museumplein (Alexander Boerstraat 21).
In my next article, I anticipate having a release candidate for PoC-8 and perhaps even an initial draft implementation of swarm. But until then, enjoy whispering and mining!