Primitives
broadcast
Disseminate data over a wide-area network.
consensus
Order opaque messages in a Byzantine environment.
cryptography
Generate keys, sign arbitrary messages, and deterministically verify signatures.
deployer
Deploy infrastructure across cloud providers.
p2p
Communicate with authenticated peers over encrypted connections.
resolver
Resolve data identified by a fixed-length key.
runtime
Execute asynchronous tasks with a configurable scheduler.
storage
Persist and retrieve data from an abstract store.
stream
Exchange messages over arbitrary transport.
Examples
bridge
Send succinct consensus certificates between two networks.
chat
Send encrypted messages to a group of friends.
flood
Spam peers deployed to AWS EC2 with random messages.
log
Commit to a secret log and agree to its hash.
vrf
Generate bias-resistant randomness with untrusted contributors.
Blogs
Your p2p demo runs locally. Now what?
You've built a peer-to-peer (p2p) demo that hums along on your local machine. Peers connect, messages flow, and for a moment, you're basking in localhost bliss. Then comes the inevitable question: how do you migrate this from your laptop to the cloud?
Scaling Throughput with Linked Broadcast
Blockchains require replicating data, like transactions, across nodes in the network—but doing it efficiently and reliably is a challenge. For the last decade, best-effort broadcast has been the norm, relying on consensus to guarantee delivery. The result? Wasted bandwidth by sending the same data multiple times, bottlenecked throughput by routing messages through a single node (the leader in consensus), and degraded performance whenever that node is unresponsive.
Merkle Mountain Ranges for Performant Data Authentication
Decentralized systems require the ability to prove authenticity of data received from potentially untrustworthy sources. The most well known data structure for this task is the Merkle tree, which allows one to efficiently prove inclusion of an element within a list without having to obtain the entire list from a trusted source.
Many-to-Many Interoperability with Threshold Simplex
Starting with the launch of the second blockchain, connecting any blockchain to any other blockchain without additional trust assumptions has been an elusive dream. Ten years later, application developers must still settle for some version of this.
Commonware: the Anti-Framework
Today’s blockchain stack is designed to be a jack of all trades, but master of none. Modeled after virtual machines (VM) and kernels, it exposes a balanced interface through a one-size-fits-all framework instead of molding to the needs of any specific application.
commonware-runtime: The Foundation for Reliable and Performant Consensus
In blockchain engineering, there are few moments more stressful than the production release of a new mechanism (whether a novel consensus optimization or a tweak to peer discovery).
commonware-cryptography: Unlocking Seeds, Links, and Views
When I chat with a developer about launching their own onchain application (as a specialized blockchain), the same questions always come up.
Introducing Commonware
Like many of you, I started working in the crypto space because I believe the internet will be a better place if (a lot) more of it is onchain.