forked from tronprotocol/java-tron
-
Notifications
You must be signed in to change notification settings - Fork 6
feat(archive): add historical state archive support #136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
halibobo1205
wants to merge
168
commits into
develop
Choose a base branch
from
feat/archive-node
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
168 commits
Select commit
Hold shift + click to select a range
022798a
docs(archive): add archiveV3 design corpus, verification report and a…
halibobo1205 5cbc625
feat(archive): L1 config/no-op/dbName scaffolding for default-off sid…
halibobo1205 aa2582e
feat(archive): L2 in-memory txNum index + execution context (non-cons…
halibobo1205 750a594
docs(archive): refine decision 5 arm64 module boundary to L5 (L2-L4 s…
halibobo1205 d078d66
feat(archive): L2 DefaultArchiveService + factory enablement (non-con…
halibobo1205 1b3b3b2
docs(archive): L2 Manager-hooks handoff packet (anchors, structural t…
halibobo1205 2667db0
feat(archive): L2 Manager lifecycle hooks + enabled integration test …
halibobo1205 dca73a2
docs(archive): record L4 todo — updateFork txNum attribution (post-pr…
halibobo1205 b4f9eda
feat(archive): L3 domain registry schema core (dbName classification,…
halibobo1205 0a96c3a
feat(archive): L3 canonical key/value codecs + dynamic-properties key…
halibobo1205 5776875
feat(archive): L3 ACCOUNT canonical value codec (decision 4: strip as…
halibobo1205 4261749
style(archive): wrap comments/signatures to 100 cols, ASCII-only source
halibobo1205 1808992
feat(archive): L3 domain catalog + coverage (per-domain codecs, deter…
halibobo1205 ff6ee64
feat(archive): L4a capture engine (dbName->binding->codec routing, ex…
halibobo1205 11652ce
feat(archive): L4b store-path capture hooks (base put/delete + contra…
halibobo1205 0d34217
feat(archive): L4c ACCOUNT_ASSET semantic capture (assetV2 value-diff…
halibobo1205 5cf1ed1
feat(archive): L4c CONTRACT_STORAGE semantic capture (VM Storage.comm…
halibobo1205 68ded81
docs(archive): soften ACCOUNT_ASSET comment per L4c verify (read-indu…
halibobo1205 becfcd7
feat(archive): L5 temporal store foundation (getAsOf/latest + in-memo…
halibobo1205 a05160d
feat(archive): L5 RocksDB temporal store (single-CF prefix layout, se…
halibobo1205 3c9d640
feat(archive): L5 wire RocksDB temporal store into service (factory p…
halibobo1205 df22dc8
feat(archive): L5 temporal unwind/pruning (changeset index, drop reve…
halibobo1205 57f75c0
fix(archive): L5 unwind correctness per verify (length-prefix keys, a…
halibobo1205 cc98d81
feat(archive): L6 state reader core (historical getAccount/getContrac…
halibobo1205 7fd8f79
docs(archive): L6 getStorage version-probe rationale + create2 caveat…
halibobo1205 d4c1ac4
feat(archive): L6 reader glue (ArchiveStorageKeyCodec + ArchiveStateR…
halibobo1205 9b7be91
feat(archive): L6 persistent txNum index (RocksDB block-range store +…
halibobo1205 b1ed7d5
docs(archive): note persistent-index unwind edge per verify (store-on…
halibobo1205 5130673
feat(archive): L6 wire persistent txNum index + reader factory into s…
halibobo1205 c5dffbc
feat(archive): L6 framework RPC -- historical eth_getBalance/getStora…
halibobo1205 94d75ab
fix(archive): L6 reject null storage slot in historical getStorageAt …
halibobo1205 5d49948
test(archive): L6 end-to-end historical eth_getBalance through real c…
halibobo1205 9050539
feat(archive): L8 Slice 1 -- VmDynamicProperties interface + ConfigLo…
halibobo1205 748d05c
feat(archive): L8 Slice 2 -- ArchiveRepositoryAdapter (archive-backed…
halibobo1205 3596386
feat(archive): L8 Slice 3a -- ArchiveRepositoryAdapter copy-on-write …
halibobo1205 98d0dc9
feat(archive): L8 Slice 3b-1 -- VMActuator historical injection seam …
halibobo1205 c6a9630
feat(archive): L8 Slice 3b-2a -- migrate VMActuator constant-call con…
halibobo1205 8f61086
feat(archive): L8 Slice 3b-2b -- HistoricalConstantCallExecutor (arch…
halibobo1205 6dacd68
test(archive): L8 Slice 3b-2c -- end-to-end historical constant call …
halibobo1205 6c8b5ef
fix(archive): L8 Slice 3 adversarial-verify fixes -- isolate energy-l…
halibobo1205 dfec4c1
feat(archive): L8 Slice 4 -- historical eth_call RPC (HistoricalEthCa…
halibobo1205 92d802a
fix(archive): L8 Slice 4 adversarial-verify fixes -- object-form hist…
halibobo1205 69bce30
fix(archive): L8 Fix 7 -- materialize fresh accounts in overlay for v…
halibobo1205 94359c1
feat(archive): L8 historical energy price for eth_call -- BASEFEE/GAS…
halibobo1205 5c20fcb
feat(archive): L8 historical hard-fork flag reconstruction for eth_ca…
halibobo1205 d37525b
fix(archive): L8 reconstruct 3 more result-affecting flags caught by …
halibobo1205 e4426d2
test(archive): L8 PUSH0 opcode gated on reconstructed Shanghai flag -…
halibobo1205 73be573
feat(archive): root FreezeV2/shielded-TRC20/multi-sign keys as VM_CON…
halibobo1205 4a4b354
test(archive): L8 end-to-end RPC integration -- HistoricalEthCallSupp…
halibobo1205 20dcdcd
feat(archive): historical debug_traceCall -- replay a read-only call …
halibobo1205 0aff674
feat(archive): historical debug_traceTransaction -- replay a past tx'…
halibobo1205 d2632df
fix(archive): L6 adversarial-verify fixes -- genesis-coverage gate on…
halibobo1205 05f4273
test(archive): L6 positive integration -- genesis-complete archive re…
halibobo1205 c892e1b
docs(archive): project B charter -- migrate L4/L5 temporal to Erigon-…
halibobo1205 47920db
docs(archive): project B-core execution handoff -- exact code anchors…
halibobo1205 82f54b0
feat(archive): B-core B1+B2 -- migrate temporal to Erigon-v3 prev-val…
halibobo1205 620ba05
test(archive): B-core B3 -- unwind restart-persistence + InMemory<->R…
halibobo1205 327ac12
test(archive): B-core B4 mid-chain store-reader verification
halibobo1205 955c0fd
fix(archive): harden B-core persistence fail-closed
halibobo1205 774b4d0
fix(archive): harden temporal unwind recovery
halibobo1205 c60c74a
fix(archive): harden unwind and historical reads
halibobo1205 ed7db51
fix(archive): fail closed on persisted corruption
halibobo1205 709b7e6
fix(archive): read contract state historically
halibobo1205 a3fcf0e
fix(archive): enforce contiguous txnum coverage
halibobo1205 5a478b5
fix(archive): replay vm config historically
halibobo1205 8cc98aa
fix(archive): validate canonical head on startup
halibobo1205 e435f4c
fix(archive): fail closed on mid-chain missing state
halibobo1205 7e376d8
fix(archive): harden replay and startup validation
halibobo1205 e793214
fix(archive): fail closed on rpc and persisted corruption
halibobo1205 81bacfa
fix(archive): tighten genesis coverage and vm params
halibobo1205 41503fc
fix(archive): harden capture coverage and temporal schema
halibobo1205 bd1b00c
fix(archive): fail closed unsupported trace replay
halibobo1205 f1b3528
fix(archive): require block hashes for committed ranges
halibobo1205 f0e188d
fix(archive): capture genesis and reject orphan temporal data
halibobo1205 a0724fd
fix(archive): align asset capture and dynamic key policy
halibobo1205 72e8801
fix(archive): fail closed runtime inconsistencies
halibobo1205 2b3d684
fix(archive): harden runtime consistency barriers
halibobo1205 abbe55e
fix(archive): tighten policy and replay guards
halibobo1205 2852e7c
fix(archive): isolate historical VM fork state
halibobo1205 6167fa4
fix(archive): harden trace replay and unwind cleanup
halibobo1205 7c4c54c
fix(archive): strengthen historical replay consistency
halibobo1205 2cc21be
fix(archive): tighten historical replay gates
halibobo1205 565d98d
fix(archive): keep unknown dynamic keys out of roots
halibobo1205 b71e42e
fix(archive): require canonical head coverage
halibobo1205 443dd5f
fix(archive): gate unsupported archive stores
halibobo1205 a282cbf
fix(archive): record trace opcode gas cost
halibobo1205 27d3e9e
fix(archive): align temporal key layout
halibobo1205 72715b3
fix(archive): derive block index lookups
halibobo1205 0662d19
fix(archive): migrate txnum keys to L5 prefixes
halibobo1205 79aba00
fix(archive): harden txnum schema validation
halibobo1205 853ae3b
fix(archive): harden state consistency checks
halibobo1205 74dfa3a
fix(archive): close review gaps in historical reads
halibobo1205 b05f5fb
fix(archive): harden genesis coverage validation
halibobo1205 60d3797
fix(archive): enforce genesis dynamic coverage
halibobo1205 aa954ab
fix(archive): publish only solidified history
halibobo1205 e7ebd2e
fix(archive): reconcile startup state
halibobo1205 c7110b2
fix(archive): harden review findings
halibobo1205 6db0304
fix(archive): harden config and historical resolution
halibobo1205 dbc28bd
fix(archive): harden historical calls and config
halibobo1205 127f3ec
fix(archive): harden historical trace calls
halibobo1205 b88911d
test(archive): guard historical dynamic property keys
halibobo1205 f7c1cf6
fix(archive): harden historical read-through
halibobo1205 778fe7d
fix(archive): harden recovery and historical state
halibobo1205 d0de85b
fix(archive): harden trace and capture isolation
halibobo1205 e7d3849
fix(archive): default bare manager to noop service
halibobo1205 be57cb6
test(archive): cover the 3 new value/key codecs + StructLogReconstruc…
halibobo1205 99ed200
test(archive): cover untested temporal branches -- RocksDb multi-drop…
halibobo1205 a72a235
test(archive): cover ArchiveRepositoryAdapter SELFDESTRUCT isolation …
halibobo1205 4dc5bca
test(archive): cover RocksDb duplicate-changeset rejection + ChainBas…
halibobo1205 961dec3
test(archive): cover multi-block in-flight read-through + reorg unwin…
halibobo1205 9381e3c
test(archive): cover mid-chain TOMBSTONE rendering as default zero (d…
halibobo1205 eb26655
fix(archive): harden restart and index lifecycle
halibobo1205 33bffd3
docs(archive): add round-2 adversarial-review fix checklist
halibobo1205 0a6ab82
fix(archive): resolve historical VM TOMBSTONE flags to default
halibobo1205 2f419e2
fix(archive): guard InMemory unwindBlock to head-only like RocksDb
halibobo1205 ea6c56d
docs(archive): mark G2/G6 implemented in round-2 checklist
halibobo1205 a06859c
test(archive): add InMemory<->RocksDb unwindBlock head-guard parity
halibobo1205 bdc576b
test(archive): cover audit-surfaced fail-closed branches
halibobo1205 18496ec
fix(archive): resolve tombstone to config default, not hardwired zero
halibobo1205 1888144
fix(archive): track empty blocks in InMemory unwindBlock head guard
halibobo1205 64e42f2
fix(archive): check rocksdb iterator status to fail-stop on read errors
halibobo1205 ff7bc2f
fix(archive): validate genesis coverage after reconcile, not before
halibobo1205 1dc4aff
perf(archive): index in-flight read-through by key instead of scanning
halibobo1205 8963e6c
feat(archive): cap in-flight buffer to fail-stop a solidification stall
halibobo1205 9fe0172
docs(archive): design snapshot-backed reader to unblock eth_call
halibobo1205 81dce48
feat(archive): add ArchiveTemporalReadView for point-in-time reads
halibobo1205 ca28746
refactor(archive): make the reader read via ArchiveTemporalReadView
halibobo1205 8746e4a
feat(archive): add openReader that snapshots genesis-complete reads
halibobo1205 e90f586
perf(archive): run historical eth_call/trace off the write lock
halibobo1205 8d24830
test(archive): prove openReader unblocks commit for genesis-complete
halibobo1205 b0ba592
docs(archive): mark item-1 Phase 1 implemented in design doc
halibobo1205 140a6f5
docs(archive): record Phase 2 assessment and decision to decline
halibobo1205 29ff132
feat(archive): harden lifecycle, recovery and queries
halibobo1205 3139f3a
docs(archive): add round-3 review checklist for codex
halibobo1205 b609d93
fix(archive): address round-3 review findings
halibobo1205 d0eeae7
fix(archive): close snapshot reader if managed-reader ctor fails
halibobo1205 997f970
docs(archive): add from-0 production validation runbook
halibobo1205 7b9ac29
docs(archive): add UNIFIED_V1 wiring requirements spec
halibobo1205 6b580b1
docs(archive): point round-3 checklist to UNIFIED_V1 spec and runbook
halibobo1205 04769a7
feat(archive): wire UNIFIED_V1 backend
halibobo1205 0d306b5
fix(archive): fold UNIFIED block digest in changeset-key order
halibobo1205 7cfb812
docs(archive): record round-4 review outcome and M3 gate deliverables
halibobo1205 c1885c0
docs(archive): add round-5 execution checklist for codex
halibobo1205 6b49520
docs(archive): add round-6 probe results and closure conditions
halibobo1205 54b3be8
feat(archive): harden unified-only implementation
halibobo1205 717d0ea
docs(archive): add audit implementation scoreboard for unified rework
halibobo1205 1f0f197
perf(archive): harden unified startup and resource bounds
halibobo1205 c50ea0f
fix(archive): close round 8 adversarial findings
halibobo1205 e4cac64
fix(archive): complete round 8 fail-stop hardening
halibobo1205 7e0fb04
fix(archive): harden block begin failure recovery
halibobo1205 8e1602c
fix(archive): complete adversarial hardening rounds 10-24
halibobo1205 5e93fd7
refactor(archive): simplify publication and lifecycle contracts
halibobo1205 c5cef4a
refactor(archive): optimize temporal storage and query isolation
halibobo1205 d8aad6a
docs(archive): record schema 6 E2E results
halibobo1205 fae9c26
fix(archive): finalize dynamic property schema
halibobo1205 3e8c875
refactor(archive): remove obsolete helpers
halibobo1205 de9a823
docs(archive): add round-7 delta review results and priorities
halibobo1205 a3d4834
fix(archive): close workflow audit findings
halibobo1205 a9dc952
fix(archive): harden admission and recovery paths
halibobo1205 0015cd5
fix(archive): close admission and query error races
halibobo1205 e284097
fix(archive): satisfy cross-JDK build validation
halibobo1205 807d237
fix(archive): preserve eth_call selector validation
halibobo1205 ff7e2b6
feat(archive): add historical debug trace v1
halibobo1205 dd08fd2
feat(archive): complete historical selfdestruct replay
halibobo1205 1387d90
fix(archive): harden historical debug trace replay
halibobo1205 c03b17b
test(archive): isolate shared state and background services
halibobo1205 4eb060f
docs(archive): add round-8 review results and action items
halibobo1205 a0616c8
fix(archive): close round-8 review findings
halibobo1205 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
195 changes: 133 additions & 62 deletions
195
actuator/src/main/java/org/tron/core/actuator/VMActuator.java
Large diffs are not rendered by default.
Oops, something went wrong.
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When
debug_traceTransactionreplays a transaction that invokesVerifyTransferProof,HistoricalDebugTraceExecutorpassesconstantCall=falseeven though the repository is historical. This predicate therefore returns false, selecting the canonicalworkersInNonConstantCallpool andawaitLegacyProofTasks; after its timed latch wait, that path performs unboundedFuture.get()calls and does not cancel unfinished work. Such traces can exceed the archive query deadline, occupy the dedicated trace worker, and contend with canonical proof execution. Classify any historical archive repository as historical here, independently of the constant-call flag.Useful? React with 👍 / 👎.