Byte-for-byte verification of the official Ethereum GlobalRegistrar contract, deployed twice by the same developer in August 2015.
| Rank | Address | Block | Timestamp |
|---|---|---|---|
| #19 | 0x1392a4f1642c22bc6e3380bb156193e790770c35 |
50,466 | 2015-08-13 |
| #24 | 0xf436ceba3850bd3b0e853b018212d6fc2b6267d0 |
51,245 | 2015-08-22 |
Both deployed by 0x3d0768da09ce77d25e2d998e6a7b6ed4b9116c2d using go-ethereum's built-in --registrar deployment, which embedded the pre-compiled bytecode directly in the client.
The GlobalRegistrar bytecode was pre-compiled and embedded in go-ethereum's official codebase:
- File:
common/registrar/contracts.go - Commit:
83ee39448e(June 23, 2015) - Constant:
GlobalRegistrarCode
The source code is GlobalRegistrarSrc in the same file and commit.
This is an author-published verification — the Ethereum Foundation / go-ethereum team authored and published both the source and compiled bytecode together in the official client. The bytecode is canonical.
- Creation input: 2894 bytes (
0x610b40...— 14-byte non-standard init code + 2880-byte runtime) - Runtime: 2880 bytes
- Init code: 14 bytes (
610b408061000e6000396000f300)
See GlobalRegistrar.sol — exact source from go-ethereum commit 83ee39448e.
Key note: register(bytes32) is a temporary alias for subRegistrar(bytes32) lookup (the real subRegistrar() getter is commented out with a // TODO: bring in on next iteration note). This explains why the contract has both reserve(bytes32) and register(bytes32) as separate selectors.
| Selector | Function |
|---|---|
01984892 |
name(address) |
02571be3 |
owner(bytes32) |
2dff6941 |
content(bytes32) |
3b3b57de |
addr(bytes32) |
432ced04 |
reserve(bytes32) |
5a3a05bd |
subRegistrar(bytes32) |
79ce9fac |
transfer(bytes32,address) |
89a69c0e |
setSubRegistrar(bytes32,address) |
b9f37c86 |
Registrar() — auto-getter for address public Registrar |
be99a980 |
setAddress(bytes32,address,bool) |
c3d014d6 |
setContent(bytes32,bytes32) |
d93e7573 |
disown(bytes32) |
e1fa8e84 |
register(bytes32) — temp alias returning subRegistrar address |
python3 verify.pyFetches creation TX inputs for both deployments and confirms runtime matches GlobalRegistrarCode from go-ethereum commit 83ee39448e.