A Frontier-era Greeter with the message: 'Hello there captain!'
Historical Significance
The Contract Tutorial was the introduction to Solidity that shipped with go-ethereum, and deploying the greeter was its final step. Each copy therefore preserves the sentence its author chose to write onto a public chain while learning the tools. The Solidity source here was recovered by compiling the tutorial text with period compilers until the output matched the deployed bytecode exactly.
Context
Ethereum's Frontier network went live on 30 July 2015. The Contract Tutorial on the go-ethereum wiki, which the Frontier Guide included by reference, was the standard introduction of that period, and it named its three contracts mortal, greeter and token. Solidity was a few months old, contracts were compiled and deployed from the geth console, and no block explorer of the time kept the source, so the greeters survive as bytecode alone.
Key Facts
Description
The greeter is the worked example of the Contract Tutorial on the go-ethereum wiki. It inherits a base contract named mortal, which records the account that created it and exposes kill(), a function that self-destructs the contract and sends its balance to that account. Only the creator can call it.
The greeter itself adds one string. The constructor stores the greeting given at deployment and greet() returns it. There is no setter, so the greeting a copy is born with is the only greeting it ever has, and no account other than the creator can affect it.
This copy was deployed with the greeting: Hello there captain!
Source Verified
Creation TX matches: compiled Greeter base (692 bytes) + ABI-encoded greeting. soljson v0.1.1+commit.6ff4cd6a, optimizer OFF.
Historian Categories
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
contract mortal {
address owner;
function mortal() { owner = msg.sender; }
function kill() { if (msg.sender == owner) suicide(owner); }
}
contract greeter is mortal {
string greeting;
function greeter(string _greeting) {
greeting = _greeting;
}
function greet() constant returns (string) {
return greeting;
}
}External Links
Related contracts
Greeter
Same deployerA Frontier-era Greeter with the message: 'Hola!'
0x86cfd9...9ae03dAugust 16, 2015Greeter
Same deployerA Frontier-era Greeter with the message: Hola! (block 97,240)
0xfd8fae...b61974August 16, 2015Greeter
Same deployerA Frontier-era Greeter with the message: 'Hola!'
0x80ca78...6cfa45August 16, 2015Greeter
Same deployerA Frontier-era Greeter with the message: 'Hola!'
0xae0724...4792f2August 16, 2015token
Same deployerThe Frontier Guide's Coin tutorial contract: a pre-ERC-20 token with coinBalanceOf, sendCoin and a CoinTransfer event.
0xe6391f...93554eAugust 16, 2015token
Same deployerThe Frontier Guide's Coin tutorial contract: a pre-ERC-20 token with coinBalanceOf, sendCoin and a CoinTransfer event.
0xc19fe6...622a5fSeptember 21, 2015