SATOSHI NAKAMOTO — the reference
bitcoin v0.1 · src/main.cpp · jan 2009 · MIT license
bool CTransaction::AddToMemoryPool()
{
// Add to memory pool without checking anything. Don't call this directly,
// call AcceptTransaction to properly check the transaction first.
CRITICAL_BLOCK(cs_mapTransactions)
{
uint256 hash = GetHash();
mapTransactions[hash] = *this;
for (int i = 0; i < vin.size(); i++)
mapNextTx[vin[i].prevout] = CInPoint(&mapTransactions[hash], i);
}
}
// the signature error idiom, everywhere:
return error("AcceptTransaction() : CheckTransaction failed");
- Indent: 4 spaces, always
- Braces: new line (Allman)
- Naming: CTransaction · Hungarian n/f/v/p/str
- Errors: bool returns through error() helper
- Comments: sparse (≈1 per 25 lines), careful prose
MIKE HEARN
bitcoinj · SeedPeers.java · commit f6fd61a · jun 2011 — 6 months after satoshi's last post · apache-2.0
// tab-indented in source
private InetSocketAddress nextPeer() throws UnknownHostException {
if(pnseedIndex >= seedAddrs.length)return null;
return new InetSocketAddress(
convertAddress(seedAddrs[pnseedIndex++]),
params.port);
}
// elsewhere: checked exceptions wrapped
throw new PeerDiscoveryException(e);
- Indent: TABS at the tight era — mismatch (bitcoinj only later normalized to spaces)
- Braces: same line + braceless one-liners — mismatch
- Micro-habit: if(pnseedIndex...)return null; — compressed, no spacing — Satoshi always spaces
- Naming: camelCase — and the one Hungarian-ish name, pnseedIndex, is borrowed straight from the Satoshi array (pnSeed) he was porting
- Errors: exception wrapping (PeerDiscoveryException) — different idiom
- Docs: full Javadoc + license headers — opposite density
DAVID SCHWARTZ
rippled (newcoin era) · SHAMap rewrite · commit 30c9bf0 · feb 2012 — 14 months after satoshi's last post · ISC license
void SHAMap::dirtyUp(std::stack<SHAMapTreeNode::pointer>& stack,
const uint256& target, uint256 prevHash)
{
while(!stack.empty())
{
SHAMapTreeNode::pointer node=stack.top();
stack.pop();
assert(node->isInnerNode());
int branch=node->selectBranch(target);
assert(branch>=0);
returnNode(node, true);
if(!node->setChildHash(branch, prevHash))
{
std::cerr << "dirtyUp terminates early";
return;
}
}
}
- Braces: new line (Allman) — MATCHES Satoshi
- Comments: minimal — matches · guard clauses — match
- Indent: TABS — mismatch (Satoshi: 4 spaces, always)
- Naming: m-prefix members (mSeq, mHash) — his own Hungarian dialect, not Satoshi's C-prefix + n/f/v/p/str
- Micro-habit: while(!x), node=stack.top() — no keyword/operator spacing — Satoshi spaces both: for (int i = 0; ...)
- Errors: assert()-heavy + exceptions — Satoshi: bool + error() helper
- Dependencies: boost everywhere — Satoshi v0.1: none
JED McCALEB
stellar-core · Config.cpp · commit f2cd877 · oct 2015 — his earliest attributable public code · apache-2.0
era caveat: eDonkey (2000–05) and Mt. Gox (2010) — the era-relevant code — were never public
void Config::parseNodeID(std::string configStr, PublicKey& retKey)
{
if(configStr.size()<2) throw std::invalid_argument("invalid key");
if(configStr[0] == '$')
{
std::string commonName = configStr.substr(1);
for(auto& v : VALIDATOR_NAMES)
{
if(v.second == commonName)
{
retKey= PubKeyUtils::fromStrKey(v.first);
return;
}
}
- Indent: 4 spaces — matches (but stellar-core enforces clang-format — may be the linter's hand)
- Braces: Allman in C++ — partial; his XDR schemas go same-line, and the formatter caveat applies
- Micro-habit: if(configStr.size()<2), retKey= — compressed, no spacing — Satoshi always spaces
- Naming: m-prefix members (mApp, mValidator) — the rippled dialect he co-founded, not Satoshi's
- Errors: std::invalid_argument throws — Satoshi: bool + error() helper
- Commit voice, verbatim: "fix windows build" · "- to _" · "docs" · "fix stroop mismatch" — Satoshi wrote careful prose
ARTHUR BRITTO
searched: github · public repositories · interviews · forums
∅
NO PUBLIC CORPUS EXISTS
- Repositories: none attributable
- Interviews: none, ever
- Photographs: essentially none
- First public act in 14 years: a single cryptic post on X, June 2025
- The one candidate who cannot be measured — which is itself the measurement
MICHAEL PEIRCE — the missing fingerprint
searched: 2000 thesis (appendices are UML, no listings) · TCD-CS-96-21 (1995) · archives · no personal source located — the missing artifact
// the closest thing to his code we have —
// the 1995 PayMe paper, verbatim:
"A prototype was implemented in a
C++/Unix environment on a Sun
workstation cluster."
// and the 2000 thesis protocol classes:
BuyRequest · BuyReply · PayEndorse
RedeemReply · PassMessageOn · ChainCore
- C++ hands: VERIFIED 1995 — personally built a complete e-cash system
- Naming: PascalCase compounds — compatible; Hungarian prefixes untestable from Java-era names
- Indent / braces / spacing / errors: UNTESTED — no source to measure
- Serialization: Java RMI, framework-level — Satoshi hand-rolled his own layer
- The only live candidate who hasn't failed the formatting test — because he's never taken it