HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ethereum
annotated-spec
Productivity2021–2022
ethereum / annotated-spec

annotated-spec

Vitalik's annotated eth2 spec. Not intended to be "the" annotated spec; other documents like Ben Edgington's https://benjaminion.xyz/eth2-annotated-spec/ also exist. This one is intended to focus more on design rationale.

6Distinct people
7Mentions
0Explicit recommenders
363GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Vitalik's annotated eth2 spec. Not intended to be "the" annotated spec; other documents like Ben Edgington's https://benjaminion.xyz/eth2-annotated-spec/ also exist. This one is intended to focus more on design rationale.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month7 dated mentions

Observed mentions: 2021-11-07 15:20:10 UTC to 2022-08-24 19:31:02 UTC.

01232021-11-01 00:00:00 UTC to 2021-12-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 commentsNov 20212021-12-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2022-02-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-02-01 00:00:00 UTC to 2022-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-01 00:00:00 UTC to 2022-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMar 20222022-04-01 00:00:00 UTC to 2022-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-05-01 00:00:00 UTC to 2022-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-06-01 00:00:00 UTC to 2022-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-07-01 00:00:00 UTC to 2022-08-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-08-01 00:00:00 UTC to 2022-09-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsAug 2022

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Nov 20212021-11-01 00:00:00 UTC2021-12-01 00:00:00 UTC303
Dec 20212021-12-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
Jan 20222022-01-01 00:00:00 UTC2022-02-01 00:00:00 UTC101
Feb 20222022-02-01 00:00:00 UTC2022-03-01 00:00:00 UTC000
Mar 20222022-03-01 00:00:00 UTC2022-04-01 00:00:00 UTC000
Apr 20222022-04-01 00:00:00 UTC2022-05-01 00:00:00 UTC000
May 20222022-05-01 00:00:00 UTC2022-06-01 00:00:00 UTC000
Jun 20222022-06-01 00:00:00 UTC2022-07-01 00:00:00 UTC000
Jul 20222022-07-01 00:00:00 UTC2022-08-01 00:00:00 UTC101
Aug 20222022-08-01 00:00:00 UTC2022-09-01 00:00:00 UTC202

What Hacker News says

7 sources
I know about that but thanks for your comment - I’ll clarify what I mean. It’s just the specifics of how this works - slashing is part of the protocol in the sense that I described: when you are chosen to create a new block and you have proof that someone violated the rules then you include this proof in your proposed block and update balance. Any validator can do it including the smallest of home stakers. More details here. https://github.com/ethereum/annotated-spec/blob/master/phase... Here we have slashing fields in the block body where you insert your proofs of slashable offense. There are functions with a “slash” in the name that describes precise state transition. The hard part of slashing is finding these proofs because you have to do more work than necessary to detect slashing and produce proofs - that’s what this software does.
Read the rest
It’s more expensive to run a slasher but you need only one and it does not matter who runs it, anyone can run it. The link that you sent says that this slasher broadcasts proofs by default - that way anyone can include it.
In Mainnet Merge Announcement
According to Eth docs: > One validator is randomly selected to be a block proposer in every slot. This validator is responsible for creating a new block and sending it out to other nodes on the network. Also in every slot, a committee of validators is randomly chosen, whose votes are used to determine the validity of the block being proposed. The annotated code for this can be found in [2]. [1] https://github.com/ethereum/annotated-spec/blob/master/phase... [2] https://notes.ethereum.org/@vbuterin/Sys3GLJbD#Misc
In Ethereum Proof-of-Stake
The crux of the article is that the front-ends are all routing calls through centralized APIs to get their message included on the blockchain. Infura and Alchemy don't do much. They just pass a JSON-RPC message to an Ethereum node running on their servers. There is some additional indexing services they provide, but there are many open, decentralized alternatives for that such as TheGraph Protocol. And it's not unfeasible for an application to run its own Postgres instance to index data from the ETH blockchain. As for full-fat clients on normal mobile devices, the main issue is the data requirements. Running a full node can take hundreds of gigabytes. It is possible on light hardware. People are running Beacon chain nodes on Raspberry Pis. But you do need the storage and that tends to be scarce on mobile. Meanwhile, the Ethereum core devs
Read the rest
are aware of this issue and are actively working towards it. They shipped the Altair hard fork this year that has adds sync committees which make it possible to do without needing the whole chain history (using merkle trees): https://github.com/ethereum/annotated-spec/blob/master/altai... The light clients to follow from those improvements are forthcoming but here is one in progress: https://our.status.im/nimbus-fluffly/
In My First Impressions of Web3
Even a relatively light reading of the Annotated Specs for Eth2[1] and/or the Eth Org's Proof of Stake FAQs[2] suggests the designers (and independent implementer-teams who gave feedback to designers, who gave direction to the implementers... lather, rinse, repeat) understand it's important to consider the overall system "outside of the comfort zone". [1] one such: https://github.com/ethereum/annotated-spec/blob/master/phase... [2] https://eth.wiki/en/concepts/proof-of-stake-faqs
In Proof of stake is incapable of producing a consensus
I agree about the energy use of PoW. On Ethereum, the PoS beacon chain has been live for almost a year now [1], with the merging of the PoW and PoS networks happening next year. We're now at the point where the specs for the merge transition are ready [2], clients are already being modified to target the release-spec [3], and the first long-lived testnet will go live by December. I'd personally expect the Merge to happen by May. [1] https://beaconcha.in [2] https://github.com/ethereum/annotated-spec/blob/master/merge... [3] https://notes.ethereum.org/@djrtwo/kintsugi-milestones
In Ask HN: What Is the “HN” of “Web3”, Crypto, DeFi, NFT, etc

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.