The Frontier greeter carrying one extra unused storage slot
Historical Significance
The greeter as most people met it, with one storage slot more than the tutorial's version holds. A spare slot is evidence that the source behind a deployment was edited rather than copied, which is the ordinary state of tutorial code once it reaches a real chain: read, changed a little, and deployed before the change was finished.
Context
Deployed in August 2015, in the first month of the Frontier chain.
Key Facts
Description
The greeter from the Frontier contract tutorial: a string given at construction, a greet function that returns it, and the mortal base that lets the creator kill the contract and recover its balance. One thing separates it from the tutorial version. A second storage variable sits between the owner and the greeting, and the constructor writes the number six into it after storing the greeting. Nothing reads it and nothing else writes it, so the value never changes and never affects anything. Its presence is visible only because it pushes the greeting from the second storage slot to the third.
Source Verified
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)
// Submitted by EthereumHistory (ethereumhistory.com)
contract mortal {
address owner;
function mortal() { owner = msg.sender; }
function kill() { if (msg.sender == owner) suicide(owner); }
}
contract greeter is mortal {
uint version;
string greeting;
function greeter(string _greeting) {
greeting = _greeting;
version = 6;
}
function greet() constant returns (string) {
return greeting;
}
}External Links
Related contracts
Info
Same deployerA 280-byte contract that exposes one stored number through info() and can be destroyed by its deployer via kill().
0x44b10e...0dd430August 20, 2015Info
Same deployerA 280-byte contract that exposes one stored number through info() and can be destroyed by its deployer via kill().
0xef550c...ff98bcAugust 20, 2015greeter
Same deployerThe Frontier-era greeter tutorial contract: returns a constructor-set greeting from greet(), with an owner-only kill() inherited from mortal.
0x083e1d...0fb616August 30, 2015greeter
Same deployerThe Frontier-era greeter tutorial contract: returns a constructor-set greeting from greet(), with an owner-only kill() inherited from mortal.
0x3ae3af...e4e04dAugust 31, 2015Greeter
Same deployerThe greeter with a changeable greeting and a block number reader
0x1b2ea4...4bafcbDecember 1, 2015Greeter
Same deployerThe Greeter from the solidity-baby-steps tutorials, deployed with an empty greeting.
0x68b58d...dc2dc0December 1, 2015