forked from commonwarexyz/monorepo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
172 lines (162 loc) · 11.4 KB
/
index.html
File metadata and controls
172 lines (162 loc) · 11.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<link rel="icon" href="favicon.ico" type="image/x-icon">
<title>commonware</title>
<meta name="description" content="">
<meta name="keywords" content="commonware, open source, common goods, software, internet, ownership, trust, blockchain, decentralization, crypto">
<meta property="og:url" content="https://commonware.xyz" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="commonware" />
<meta property="og:title" content="commonware" />
<meta property="og:description" content="" />
<meta property="og:image" content="https://commonware.xyz/card.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta property="twitter:domain" content="commonware.xyz" />
<meta property="twitter:url" content="https://commonware.xyz" />
<meta property="twitter:title" content="commonware" />
<meta property="twitter:description" content="" />
<meta property="twitter:image" content="https://commonware.xyz/card.png" />
<meta property="twitter:site" content="@commonwarexyz" />
<meta property="twitter:creator" content="@commonwarexyz" />
<meta property="twitter:creator:id" content="@commonwarexyz" />
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="logo-placeholder">
<div class="logo-line">
<span class="edge-logo-symbol">+</span>
<span class="horizontal-logo-symbol">~</span>
<span class="horizontal-logo-symbol"> </span>
<span class="horizontal-logo-symbol">-</span>
<span class="horizontal-logo-symbol">+</span>
<span class="horizontal-logo-symbol">-</span>
<span class="horizontal-logo-symbol">+</span>
<span class="horizontal-logo-symbol"> </span>
<span class="horizontal-logo-symbol">-</span>
<span class="horizontal-logo-symbol">+</span>
<span class="horizontal-logo-symbol">-</span>
<span class="horizontal-logo-symbol">~</span>
<span class="horizontal-logo-symbol">~</span>
<span class="edge-logo-symbol">*</span>
</div>
<div class="logo-line">
<span class="vertical-logo-symbol">|</span>
<span class="logo-text"> commonware </span>
<span class="vertical-logo-symbol"> </span>
</div>
<div class="logo-line">
<span class="edge-logo-symbol">*</span>
<span class="horizontal-logo-symbol">~</span>
<span class="horizontal-logo-symbol">+</span>
<span class="horizontal-logo-symbol">+</span>
<span class="horizontal-logo-symbol">-</span>
<span class="horizontal-logo-symbol"> </span>
<span class="horizontal-logo-symbol">~</span>
<span class="horizontal-logo-symbol">-</span>
<span class="horizontal-logo-symbol">+</span>
<span class="horizontal-logo-symbol"> </span>
<span class="horizontal-logo-symbol">-</span>
<span class="horizontal-logo-symbol">*</span>
<span class="horizontal-logo-symbol">-</span>
<span class="edge-logo-symbol">+</span>
</div>
</div>
<div class="content">
<h2>Primitives</h2>
<h3><a href="https://docs.rs/commonware-broadcast">broadcast</a></h3>
<p>Disseminate data over a wide-area network.</p>
<h3><a href="https://docs.rs/commonware-codec">codec</a></h3>
<p>Serialize structured data.</p>
<h3><a href="https://docs.rs/commonware-consensus">consensus</a></h3>
<p>Order opaque messages in a Byzantine environment.</p>
<h3><a href="https://docs.rs/commonware-cryptography">cryptography</a></h3>
<p>Generate keys, sign arbitrary messages, and deterministically verify signatures.</p>
<h3><a href="https://docs.rs/commonware-deployer">deployer</a></h3>
<p>Deploy infrastructure across cloud providers.</p>
<h3><a href="https://docs.rs/commonware-p2p">p2p</a></h3>
<p>Communicate with authenticated peers over encrypted connections.</p>
<h3><a href="https://docs.rs/commonware-resolver">resolver</a></h3>
<p>Resolve data identified by a fixed-length key.</p>
<h3><a href="https://docs.rs/commonware-runtime">runtime</a></h3>
<p>Execute asynchronous tasks with a configurable scheduler.</p>
<h3><a href="https://docs.rs/commonware-storage">storage</a></h3>
<p>Persist and retrieve data from an abstract store.</p>
<h3><a href="https://docs.rs/commonware-stream">stream</a></h3>
<p>Exchange messages over arbitrary transport.</p>
<h2>Examples</h2>
<h3><a href="https://alto.commonware.xyz">alto</a></h3>
<p>A minimal (and wicked fast) blockchain built with the Commonware Library.</p>
<h3><a href="https://docs.rs/commonware-bridge">bridge</a></h3>
<p>Send succinct consensus certificates between two networks.</p>
<h3><a href="https://docs.rs/commonware-chat">chat</a></h3>
<p>Send encrypted messages to a group of friends.</p>
<h3><a href="https://docs.rs/commonware-flood">flood</a></h3>
<p>Spam peers deployed to AWS EC2 with random messages.</p>
<h3><a href="https://docs.rs/commonware-log">log</a></h3>
<p>Commit to a secret log and agree to its hash.</p>
<h3><a href="https://docs.rs/commonware-vrf">vrf</a></h3>
<p>Generate bias-resistant randomness with untrusted contributors.</p>
<h2>Blogs</h2>
<h3><a href="./blogs/adb-any.html">The Simplest Database You Need</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/roberto_bayardo">Roberto Bayardo</a> and <a href="https://x.com/_patrickogrady">Patrick O'Grady</a></div>
<div class="date">April 9, 2025</div>
</div>
<p>The primary limitation of the MMR compared to a more typical Merkle tree structure is its lack of support for removing elements from the list over which inclusion proofs can be provided. This restriction, at first glance, might appear to prohibit an MMR from being used to build a mutable database where keys take on values that change over time. However, append-only MMRs are a natural fit for authenticating log data. Instead of viewing our database as only a snapshot in time, the basic idea we'll build on is to maintain an MMR over the historical log of all database operations performed up until the present state.</p>
<h3><a href="./blogs/commonware-deployer.html">Your p2p demo runs locally. Now what?</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/_patrickogrady">Patrick O'Grady</a></div>
<div class="date">March 6, 2025</div>
</div>
<p>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?</p>
<h3><a href="./blogs/commonware-broadcast.html">Scaling Throughput with Ordered Broadcast</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/b_chou">Brendan Chou</a></div>
<div class="date">February 20, 2025</div>
</div>
<p>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.</p>
<h3><a href="./blogs/mmr.html">Merkle Mountain Ranges for Performant Data Authentication</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/roberto_bayardo">Roberto Bayardo</a></div>
<div class="date">February 13, 2025</div>
</div>
<p>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.</p>
<h3><a href="./blogs/threshold-simplex.html">Many-to-Many Interoperability with Threshold Simplex</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/_patrickogrady">Patrick O'Grady</a></div>
<div class="date">January 16, 2025</div>
</div>
<p>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.</p>
<h3><a href="./blogs/commonware-the-anti-framework.html">Commonware: the Anti-Framework</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/_patrickogrady">Patrick O'Grady</a></div>
<div class="date">December 11, 2024</div>
</div>
<p>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.</p>
<h3><a href="./blogs/commonware-runtime.html">commonware-runtime: The Foundation for Reliable and Performant Consensus</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/_patrickogrady">Patrick O'Grady</a></div>
<div class="date">September 24, 2024</div>
</div>
<p>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).</p>
<h3><a href="./blogs/commonware-cryptography.html">commonware-cryptography: Unlocking Seeds, Links, and Views</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/_patrickogrady">Patrick O'Grady</a></div>
<div class="date">August 28, 2024</div>
</div>
<p>When I chat with a developer about launching their own onchain application (as a specialized blockchain), the same questions always come up.</p>
<h3><a href="./blogs/introducing-commonware.html">Introducing Commonware</a></h3>
<div class="meta">
<div class="author">By <a href="https://x.com/_patrickogrady">Patrick O'Grady</a></div>
<div class="date">August 8, 2024</div>
</div>
<p>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.</p>
</div>
<div id="footer-placeholder"></div>
<script src="shared.js"></script>
<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "07159b86f75b4af18e54dd0cda2fb4a7"}'></script>
</body>
</html>