@garious garious released this Jun 2, 2018 · 1899 commits to master since this release

Assets 2

The Solana team is proud to release solana-v0.6.0, codename Pipeline!

image

What's New?

  • Multinode testnet! Very much in its infancy, but we've massively de-risked performance concerns surrounding high-throughput multinode testnets. You can now spin up validator nodes and see that the leader is able to get the blocks to them without any TPS slowdown. That was our theory and now it's a reality.

  • Three software pipelines! Last month we introduced the TPU at the Solana meetup in San Francisco. The TPU is now fully implemented, as well as a new pipelined RPU to process client requests, and a TVU to validate transactions and produce a Proof of Validation. Each pipeline is built up from stages, an abstraction we built up in Rust, inspired by CPU design.

  • Network Control Plane using CRDTs! Most of the building blocks to the Avalanche architecture are now implemented. The leader avoids congesting the network by breaking blocks into segments and passing them to validators. The validators then pass their segments to their peers and reconstruct the block.

  • Generalized smart contracts! In the last release, we offered a minimal unnamed builtin smart contract bytecode. In this past month, we broke it out and defined a generic interface to it. As we described at the meetup, we can now light up any language that is able to safely implement that interface.

Solana's TPS Report

We massively restructured our codebase and with that work, took a performance hit that we're still working through. We're seeing consistent transaction processing rates between 140 and 170ktps. That's running with or without a validator node in place. While we're down from 250ktps last month, we're celebrating that adding validators doesn't slow the network down in the slightest. And with our new pipelining infrastructure, it's now much easier for us to do performance analysis and identify bottlenecks. We expect to be back en route to 710ktps long before our mainnet release.

What's Next?

  • Public testnet! Let's see if you can knock down our network as fast as I can. :)

  • Network stability features. Auto-restart, block retransmission, erasure codes, etc.

  • More pipelining! We've got a hammer and aren't afraid to use it. We've identified a fourth place that would benefit from pipelining, which we'll call the NCP, the Network Control Plane pipeline. It'll benefit the TVU in the same way RPU helps the TPU - offload control messages, leaving the TVU with a speedy, linear pipeline like the TPU.

On the Radar

  • More nodes! We're only making use of 2 tiers in our Avalanche architecture. We expect that to be at least 3 tiers by mainnet and with far more nodes at each tier. This is a feature where the devil is in the details and it will be implemented over several months. We'll be busy building up infrastructure dependencies like the NCP pipeline mentioned above, erasure codes, and improved asynchronous messaging.

  • More smart contracts! Now that smart contracts have been generalized to an interface, we can showcase that generality by embedding a general purpose programming language.

Code Contributions

  • @mvines moved all our CI to BuildKite and created an automated release process! But is there any way we can get a new bot, @solana-grimes, to correlate new features to popular surf breaks?
  • @rlkelly implemented the HD wallet feature of deterministically generating private keys. He used it to make the demo's JSON file almost exactly one million times smaller!
  • @CriesofCarrots added functions to make it painless to generate test ledgers. She's also working towards bringing asynchronous messaging to our thin client.
  • @jackson-sandland improved error messaging with 23 commits, touching nearly every module in the codebase.
  • @djKooks reviewed the README and with each issue, either corrected it or created a ticket for it.