Wavelet Beta

The fastest, developer-friendly, open-sourced public blockchain that sustains 31,240 transactions per second. Now without Avalanche.

Kenta Iwasaki
Jun 27, 2019 · 18 min read
A clip of 240 nodes slowly building up to reaching 31,240 TPS on DigitalOcean ❤️.

A tl;dr for those who need it.

What took so long?

If Avalanche can’t guarantee that nodes execute transactions in a consistent order, how the hell would smart contracts work?

You can see me and Heyang with the team winning US$15,000. Imagine how ugly the debate got 😆.

Avalanche achieves scalability by not guaranteeing a consistent ordering of transactions across a network.

“What if we used Snowball to have nodes agree on how a batch of transactions in a DAG are ordered?”

A new family of consensus protocols

The whitepaper in its full glory.
The first four rewrites that were chucked out the window.

A Family of Wavelets

So how does Wavelet work?

Step 1

A visual depicting how Wavelet has nodes gossip to create a graph of transactions.

Step 2

This is where the query protocol works in beautifully.

A visual depicting how Wavelet partitions a DAG of transactions into finalized “consensus rounds”.

Step 3

Liveness proof for Snowball. A bit below the above Lemma is a safety proof.

How do we explicitly set how often critical transactions randomly appear?

Reaping the benefits of Wavelet

Public testnet

Wavelet is now fully open-sourced.

Lens: An open web interface to Wavelet. Presently connected to Wavelet’s testnet.
Login screen for testnet.
#wavelet-faucet channel where the bot that dispenses PERLs awaits your command.

Smart contracts

A Wavelet smart contract clone of Ethereum’s ERC20 standard.

Benchmarks

In the eyes of an inquisitive beholder, they may have noticed in the GIF at the top of the post only reports about 28,000 TPS. Here’s a screenshot that marks numbers very close to 31,240 TPS. The maximum TPS, unfortunately without a screenshot, actually is about ~33,000. Benchmark experiments are expensive.

Security audits

What’s left before main net?

Gossiping/syncing protocol improvements

An in-progress Minisketch implementation in pure Go for implementing “Bandwidth-efficient Transaction Relay for Bitcoin”. A big hand to Pieter Wuille for answering a few questions we had while we worked on our Go port.

Parent selection liveness improvements

Closing remarks

Closing remarks snipped off of Wavelet’s whitepaper.

PERL.eco

Democratizing the trading of real-world assets