Repository navigation
PIP-50: align the spec with the reference implementation - #317
Closed
carbonflake wants to merge 1 commit into
Closed
carbonflake wants to merge 1 commit into
carbonflake wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This revises my Draft of PIP-50 after writing a full implementation in the node
(branch
pip-50-state-anchorof
CarbonFlake256x/pactus). Building and testing it, and two external reviews, showed wherethe spec was ambiguous, inaccurate or unsafe. The intent is unchanged: one live,
deposit-backed commitment slot per account.
Status stays Draft. The node pull request will stay a draft until this PIP is Accepted.
What changed vs the merged revision
UpdatedAt*RootHashchanges: a top-up, a newManifestURIor a newAnchorTypekeeps the attestation dateBalance + locked - feeuncheckedMinAnchorDepositMinimumStake"MaxSize(SHOULD, local policy);MaxSizeis the unit of per-pool caps, total1.1 × MaxSize; anchors placed last in blocksbytesfield; integer encodings and aBigIntnote forlocked_depositanchor_infoGetAnchorfound = false; only a malformed address is an errorListAnchorsGetAnchorfrom a third-party node is not trustlessPAC-ANCHOR-1simplemerkle(duplicates the last node, no leaf/node separation)The
PAC-ANCHOR-1change matters most for applications: with the Bitcoin-style tree,[a,b,c]and[a,b,c,c]share a root, and an inner node can be proven as a 64-byte file.Implementation status
The reference implementation covers the whole spec: payload, execution, pool,
activation at protocol version 5, gRPC / JSON-RPC / HTTP / ZMQ, wallet, and a
util/anchorprofilepackage forPAC-ANCHOR-1. Tests include lifecycle, two-nodeconsensus, restarts, fuzzing, a replay-window test on a real store and an end-to-end
run on four nodes.
PR Checklist
PIPs/pip-50.mdin place (same number, same author).