Comment log for a marketplace listing, deployed by the store it belongs to
Historical Significance
Storage is the expensive resource on Ethereum and the log is the cheap one, so a comment board that writes nothing and emits everything is a rational design rather than a lazy one. The trade is explicit: the thread is readable by anyone with an archive node or an indexer and invisible to the contract itself, which can never quote its own comments.
Context
Deployed in December 2015 on the Frontier chain, created from within another contract rather than by an account.
Key Facts
Description
A comment board that keeps nothing in storage. addComment takes an identifier and a block of text and emits a Comment event indexed by the poster and by the identifier, so the thread lives entirely in the log and readers reassemble it from events. Storage holds only an owner and a fee, both settable by the owner alone, with getOwner and getFee to read them back. Each instance is created by its parent store contract at deployment, which records the address it gets back and forwards comments to it.
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 Forum {
address owner;
uint fee;
event Comment(address indexed poster, bytes32 indexed id, bytes text);
modifier onlyOwner() {
if (msg.sender != owner) throw;
_
}
function Forum() {
owner = msg.sender;
}
function setOwner(address _owner) onlyOwner {
owner = _owner;
}
function addComment(bytes32 id, bytes text) {
Comment(msg.sender, id, text);
}
function setFee(uint _fee) onlyOwner {
fee = _fee;
}
function getOwner() constant returns (address) {
return owner;
}
function getFee() constant returns (uint) {
return fee;
}
}External Links
Related contracts
Greeter
Same eraA HelloWorld greeter deployed at block 51,909 on 8 August 2015, one of a run of contracts from the same account that week.
0x412fda...7267edAugust 8, 2015Greeter
Same eraA Greeter with the message 'Ethereum will change the world smarter' - deployed Aug 8, 2015 by a developer connected to the Tokyo Smart Contract meetup.
0xda0c1c...7a68ebAugust 8, 2015MessageStore
Same eraA 6-line contract storing a single public string, deployed Day 9 of Ethereum by a prolific early experimenter who shipped 18 contracts in one week.
0xd2eccd...ff3d6bAugust 8, 2015Greeter
Same eraThe go-ethereum Contract Tutorial greeter, deployed with the greeting: Hello World!
0x506f4b...466983August 8, 2015Contract 0xd4eae4...a2c77a
Same eraThe ethereum.org crowdsale tutorial, deployed on the ninth day of the public chain, with the funding goal, deadline and price fixed at construction.
0xd4eae4...a2c77aAugust 8, 2015Greeter
Same eraA Frontier-era Greeter contract with the message: 'Hello World!'
0x113158...72fa8aAugust 8, 2015