The go-ethereum Contract Tutorial greeter, deployed with no constructor argument, so its greeting was left empty.
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 an empty creation argument, so the constructor stored a zero-length string and greet() returned nothing.
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
External Links
Related contracts
test
Same deployerThe multiply contract that opens the go-ethereum Contract Tutorial, deployed with the author's own multiplier of 70 in place of 7.
0xdb685d...d68e91August 28, 2015Contract 0x051fdd...9f0723
Same deployerThe go-ethereum Contract Tutorial greeter, deployed with no constructor argument, so its greeting was left empty.
0x051fdd...9f0723August 29, 2015Contract 0x13acd0...71885f
Same deployerThe go-ethereum Contract Tutorial greeter, deployed with no constructor argument, so its greeting was left empty.
0x13acd0...71885fAugust 29, 2015Contract 0x4d8ab2...ddcd63
Same deployerThe go-ethereum Contract Tutorial greeter, deployed with no constructor argument, so its greeting was left empty.
0x4d8ab2...ddcd63August 29, 2015Contract 0xd24d32...62b21c
Same deployerThe go-ethereum Contract Tutorial greeter, deployed with no constructor argument, so its greeting was left empty.
0xd24d32...62b21cAugust 29, 2015Contract 0x427904...fef609
Same deployerThe go-ethereum Contract Tutorial greeter, deployed with no constructor argument, so its greeting was left empty.
0x427904...fef609August 29, 2015