Skip to content

Fix phantom nodes from account deletion, Issue #3 #4

Draft
eclairss17 wants to merge 4 commits into
masterfrom
fix-phantom-nodes-from-account-deletion
Draft

Fix phantom nodes from account deletion, Issue #3 #4
eclairss17 wants to merge 4 commits into
masterfrom
fix-phantom-nodes-from-account-deletion

Conversation

@eclairss17

Copy link
Copy Markdown
Owner

Output summary from successful benchmarking tests.

go test -bench=BenchmarkDelete -benchmem -benchtime=100x 2>&1
Seed: 49595b1ab3ca1572
goos: darwin
goarch: arm64
pkg: github.com/ethereum/go-ethereum/trie
cpu: Apple M1 Pro
BenchmarkDeleteNonExistent-8         100             62739 ns/op             311 B/op          5 allocs/op
BenchmarkDeleteExisting-8            100             14816 ns/op             318 B/op         11 allocs/op
BenchmarkDeleteMixed-8               100             16625 ns/op             302 B/op          8 allocs/op
BenchmarkDeleteWithStorage-8         100             30294 ns/op             550 B/op         19 allocs/op
BenchmarkDeleteSequential/10.00_B-8                  100            148547 ns/op            3168 B/op        116 allocs/op
BenchmarkDeleteSequential/100.00_B-8                 100           1449306 ns/op           31824 B/op       1177 allocs/op
BenchmarkDeleteSequential/1000.00_B-8                100          14874917 ns/op          318152 B/op      11767 allocs/op
BenchmarkDeleteIdempotent-8                          100              1416 ns/op              40 B/op          2 allocs/op
BenchmarkDeleteEmptyTree-8                           100              1619 ns/op              69 B/op          2 allocs/op
BenchmarkDeleteVsUpdate/Update-8                     100             32658 ns/op            8362 B/op         20 allocs/op
BenchmarkDeleteVsUpdate/Delete-8                     100             14429 ns/op             317 B/op         11 allocs/op
PASS
ok      github.com/ethereum/go-ethereum/trie    16.139s

Output summary of unit tests, sharing the complete test suite, as we want to make sure the new functionality doesn't break existing tests.

 go test -v .
Seed: 7314a59dd29dacfb
=== RUN   TestHexCompact
--- PASS: TestHexCompact (0.00s)
=== RUN   TestHexKeybytes
--- PASS: TestHexKeybytes (0.00s)
=== RUN   TestHexToCompactInPlace
--- PASS: TestHexToCompactInPlace (0.00s)
=== RUN   TestHexToCompactInPlaceRandom
--- PASS: TestHexToCompactInPlaceRandom (0.01s)
=== RUN   TestEmptyIterator
--- PASS: TestEmptyIterator (0.00s)
=== RUN   TestIterator
--- PASS: TestIterator (0.00s)
=== RUN   TestIteratorLargeData
--- PASS: TestIteratorLargeData (0.00s)
=== RUN   TestNodeIteratorCoverage
--- PASS: TestNodeIteratorCoverage (0.03s)
=== RUN   TestIteratorSeek
--- PASS: TestIteratorSeek (0.00s)
=== RUN   TestDifferenceIterator
--- PASS: TestDifferenceIterator (0.00s)
=== RUN   TestUnionIterator
--- PASS: TestUnionIterator (0.00s)
=== RUN   TestIteratorNoDups
--- PASS: TestIteratorNoDups (0.00s)
=== RUN   TestIteratorContinueAfterError
--- PASS: TestIteratorContinueAfterError (0.00s)
=== RUN   TestIteratorContinueAfterSeekError
--- PASS: TestIteratorContinueAfterSeekError (0.00s)
=== RUN   TestIteratorNodeBlob
--- PASS: TestIteratorNodeBlob (0.00s)
=== RUN   TestNodeIteratorLargeTrie
--- PASS: TestNodeIteratorLargeTrie (0.05s)
=== RUN   TestDecodeNestedNode
--- PASS: TestDecodeNestedNode (0.00s)
=== RUN   TestDecodeFullNodeWrongSizeChild
--- PASS: TestDecodeFullNodeWrongSizeChild (0.00s)
=== RUN   TestDecodeFullNodeWrongNestedFullNode
--- PASS: TestDecodeFullNodeWrongNestedFullNode (0.00s)
=== RUN   TestDecodeFullNode
--- PASS: TestDecodeFullNode (0.00s)
=== RUN   TestProof
--- PASS: TestProof (0.02s)
=== RUN   TestOneElementProof
--- PASS: TestOneElementProof (0.00s)
=== RUN   TestBadProof
--- PASS: TestBadProof (0.03s)
=== RUN   TestMissingKeyProof
--- PASS: TestMissingKeyProof (0.00s)
=== RUN   TestRangeProof
--- PASS: TestRangeProof (0.80s)
=== RUN   TestRangeProofWithNonExistentProof
--- PASS: TestRangeProofWithNonExistentProof (0.65s)
=== RUN   TestRangeProofWithInvalidNonExistentProof
--- PASS: TestRangeProofWithInvalidNonExistentProof (0.02s)
=== RUN   TestOneElementRangeProof
--- PASS: TestOneElementRangeProof (0.01s)
=== RUN   TestAllElementsProof
--- PASS: TestAllElementsProof (0.02s)
=== RUN   TestSingleSideRangeProof
--- PASS: TestSingleSideRangeProof (1.55s)
=== RUN   TestReverseSingleSideRangeProof
--- PASS: TestReverseSingleSideRangeProof (2.53s)
=== RUN   TestBadRangeProof
--- PASS: TestBadRangeProof (0.29s)
=== RUN   TestGappedRangeProof
--- PASS: TestGappedRangeProof (0.00s)
=== RUN   TestSameSideProofs
--- PASS: TestSameSideProofs (0.02s)
=== RUN   TestHasRightElement
--- PASS: TestHasRightElement (0.03s)
=== RUN   TestEmptyRangeProof
--- PASS: TestEmptyRangeProof (0.01s)
=== RUN   TestBloatedProof
--- PASS: TestBloatedProof (0.01s)
=== RUN   TestEmptyValueRangeProof
--- PASS: TestEmptyValueRangeProof (0.00s)
=== RUN   TestAllElementsEmptyValueRangeProof
--- PASS: TestAllElementsEmptyValueRangeProof (0.00s)
=== RUN   TestRangeProofKeysWithSharedPrefix
--- PASS: TestRangeProofKeysWithSharedPrefix (0.00s)
=== RUN   TestSecureDelete
--- PASS: TestSecureDelete (0.00s)
=== RUN   TestSecureGetKey
--- PASS: TestSecureGetKey (0.00s)
=== RUN   TestStateTrieConcurrency
--- PASS: TestStateTrieConcurrency (0.06s)
=== RUN   TestStackTrieInsertAndHash
--- PASS: TestStackTrieInsertAndHash (0.00s)
=== RUN   TestSizeBug
--- PASS: TestSizeBug (0.00s)
=== RUN   TestEmptyBug
--- PASS: TestEmptyBug (0.00s)
=== RUN   TestValLength56
--- PASS: TestValLength56 (0.00s)
=== RUN   TestUpdateSmallNodes
--- PASS: TestUpdateSmallNodes (0.00s)
=== RUN   TestUpdateVariableKeys
--- SKIP: TestUpdateVariableKeys (0.00s)
=== RUN   TestStacktrieNotModifyValues
--- PASS: TestStacktrieNotModifyValues (0.00s)
=== RUN   TestStacktrieSerialization
--- PASS: TestStacktrieSerialization (0.00s)
=== RUN   TestEmptySync
--- PASS: TestEmptySync (0.00s)
=== RUN   TestIterativeSync
--- PASS: TestIterativeSync (0.13s)
=== RUN   TestIterativeDelayedSync
--- PASS: TestIterativeDelayedSync (0.03s)
=== RUN   TestIterativeRandomSyncIndividual
--- PASS: TestIterativeRandomSyncIndividual (0.07s)
=== RUN   TestIterativeRandomDelayedSync
--- PASS: TestIterativeRandomDelayedSync (0.03s)
=== RUN   TestDuplicateAvoidanceSync
--- PASS: TestDuplicateAvoidanceSync (0.04s)
=== RUN   TestIncompleteSyncHash
=== PAUSE TestIncompleteSyncHash
=== RUN   TestSyncOrdering
--- PASS: TestSyncOrdering (0.03s)
=== RUN   TestSyncMovingTarget
--- PASS: TestSyncMovingTarget (0.07s)
=== RUN   TestTrieTracer
--- PASS: TestTrieTracer (0.00s)
=== RUN   TestTrieTracerNoop
--- PASS: TestTrieTracerNoop (0.00s)
=== RUN   TestAccessList
--- PASS: TestAccessList (0.00s)
=== RUN   TestAccessListLeak
--- PASS: TestAccessListLeak (0.00s)
=== RUN   TestTinyTree
--- PASS: TestTinyTree (0.00s)
=== RUN   TestEmptyTrie
--- PASS: TestEmptyTrie (0.00s)
=== RUN   TestNull
--- PASS: TestNull (0.00s)
=== RUN   TestMissingRoot
--- PASS: TestMissingRoot (0.00s)
=== RUN   TestMissingNode
--- PASS: TestMissingNode (0.00s)
=== RUN   TestInsert
--- PASS: TestInsert (0.00s)
=== RUN   TestGet
--- PASS: TestGet (0.00s)
=== RUN   TestDelete
--- PASS: TestDelete (0.00s)
=== RUN   TestEmptyValues
--- PASS: TestEmptyValues (0.00s)
=== RUN   TestReplication
--- PASS: TestReplication (0.00s)
=== RUN   TestLargeValue
--- PASS: TestLargeValue (0.00s)
=== RUN   TestRandomCases
--- PASS: TestRandomCases (0.00s)
=== RUN   TestRandom
--- PASS: TestRandom (0.01s)
=== RUN   TestTinyTrie
--- PASS: TestTinyTrie (0.00s)
=== RUN   TestCommitAfterHash
--- PASS: TestCommitAfterHash (0.00s)
=== RUN   TestCommitSequence
--- PASS: TestCommitSequence (0.01s)
=== RUN   TestCommitSequenceRandomBlobs
--- PASS: TestCommitSequenceRandomBlobs (0.02s)
=== RUN   TestCommitSequenceStackTrie
--- PASS: TestCommitSequenceStackTrie (0.41s)
=== RUN   TestCommitSequenceSmallRoot
    trie_test.go:981: root: 76427641802cfe6cbf39101179e6e6cdbdde686aea3c422e34cb6ff41d674388
--- PASS: TestCommitSequenceSmallRoot (0.00s)
=== RUN   TestDecodeNode
=== PAUSE TestDecodeNode
=== RUN   TestDeleteNonExistentAccount
--- PASS: TestDeleteNonExistentAccount (0.41s)
=== RUN   TestDeleteExistingAccount
--- PASS: TestDeleteExistingAccount (0.00s)
=== RUN   TestDeleteAccountMultiple
--- PASS: TestDeleteAccountMultiple (0.00s)
=== RUN   TestDeleteAccountWithStorage
--- PASS: TestDeleteAccountWithStorage (0.00s)
=== RUN   TestDeleteAccountIdempotent
--- PASS: TestDeleteAccountIdempotent (0.00s)
=== RUN   TestDeleteAccountEmptyTree
--- PASS: TestDeleteAccountEmptyTree (0.00s)
=== RUN   TestDeleteAccountWithDifferentBalances
=== RUN   TestDeleteAccountWithDifferentBalances/zero_balance
=== RUN   TestDeleteAccountWithDifferentBalances/small_balance
=== RUN   TestDeleteAccountWithDifferentBalances/large_balance
=== RUN   TestDeleteAccountWithDifferentBalances/max_nonce
--- PASS: TestDeleteAccountWithDifferentBalances (0.00s)
    --- PASS: TestDeleteAccountWithDifferentBalances/zero_balance (0.00s)
    --- PASS: TestDeleteAccountWithDifferentBalances/small_balance (0.00s)
    --- PASS: TestDeleteAccountWithDifferentBalances/large_balance (0.00s)
    --- PASS: TestDeleteAccountWithDifferentBalances/max_nonce (0.00s)
=== RUN   TestDeleteAccountSequential
--- PASS: TestDeleteAccountSequential (0.00s)
=== RUN   TestVerkleIterator
    verkle_iterator_test.go:59: Node: 
    verkle_iterator_test.go:59: Node: 1a100684fd68185060405f3f160e4bb6e034194336b547bdae323f888d533200
    verkle_iterator_test.go:62:         Leaf: 1a100684fd68185060405f3f160e4bb6e034194336b547bdae323f888d533200
    verkle_iterator_test.go:59: Node: eabd201aa6034f7d11c878105c8b7d192481650daf67e77de8dcda627908cc00
    verkle_iterator_test.go:62:         Leaf: eabd201aa6034f7d11c878105c8b7d192481650daf67e77de8dcda627908cc00
--- PASS: TestVerkleIterator (0.00s)
=== RUN   TestReproduceTree
    verkle_test.go:87: commitments returned by proof:
    verkle_test.go:89: 0 3218a1214afce3ab490d04286f1e0e3177e9b74b4fb6fcc442ab2f27365ec5bb
    verkle_test.go:89: 1 3218a1214afce3ab490d04286f1e0e3177e9b74b4fb6fcc442ab2f27365ec5bb
    verkle_test.go:89: 2 3218a1214afce3ab490d04286f1e0e3177e9b74b4fb6fcc442ab2f27365ec5bb
    verkle_test.go:89: 3 6aa9a5f492e443c543d3a5ec65559cd3d12f1dc1d91f97bf6473b938e3dc8567
    verkle_test.go:89: 4 6aa9a5f492e443c543d3a5ec65559cd3d12f1dc1d91f97bf6473b938e3dc8567
    verkle_test.go:89: 5 6aa9a5f492e443c543d3a5ec65559cd3d12f1dc1d91f97bf6473b938e3dc8567
    verkle_test.go:89: 6 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 7 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 8 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 9 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 10 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 11 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 12 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 13 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 14 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 15 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
    verkle_test.go:89: 16 09d0be9038095bca804d3f7749999fcdd6773dc19572486a3d868eeb20f9a011
    verkle_test.go:89: 17 09d0be9038095bca804d3f7749999fcdd6773dc19572486a3d868eeb20f9a011
    verkle_test.go:89: 18 09d0be9038095bca804d3f7749999fcdd6773dc19572486a3d868eeb20f9a011
    verkle_test.go:89: 19 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 20 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 21 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 22 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 23 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 24 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 25 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 26 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 27 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 28 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
    verkle_test.go:89: 29 2aafa1f8653887e59a68ce41e81db13c116e3469cfe5bdc0dc22f231e44b6027
    verkle_test.go:89: 30 2aafa1f8653887e59a68ce41e81db13c116e3469cfe5bdc0dc22f231e44b6027
    verkle_test.go:89: 31 2aafa1f8653887e59a68ce41e81db13c116e3469cfe5bdc0dc22f231e44b6027
    verkle_test.go:89: 32 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 33 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 34 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 35 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 36 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 37 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 38 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 39 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 40 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:89: 41 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
    verkle_test.go:96: serialized: &{[] [10 10 10] [[106 169 165 244 146 228 67 197 67 211 165 236 101 85 156 211 209 47 29 193 217 31 151 191 100 115 185 56 227 220 133 103] [110 190 131 89 62 73 73 136 124 134 86 247 216 153 119 236 67 176 94 117 15 17 59 134 237 221 147 135 64 151 237 236] [9 208 190 144 56 9 91 202 128 77 63 119 73 153 159 205 214 119 61 193 149 114 72 106 61 134 142 235 32 249 160 17] [65 138 193 250 117 202 222 183 32 107 95 209 172 172 173 200 50 153 237 16 155 18 112 111 54 21 235 26 104 255 1 79] [42 175 161 248 101 56 135 229 154 104 206 65 232 29 177 60 17 110 52 105 207 229 189 192 220 34 242 49 228 75 96 39] [75 168 66 110 59 129 226 207 192 187 36 123 59 48 91 70 163 124 235 105 143 202 138 156 55 207 221 167 156 183 49 166]] [65 255 64 111 145 15 107 70 226 104 227 241 142 218 178 254 173 225 34 51 219 88 81 24 80 104 139 161 195 108 47 223] 0x37819e040000}
    verkle_test.go:97: tree: digraph D {
        internal [label="I: 71e61bbceef1bb7a231d7aabc6b3b1f5df00edf351991f4cc6a136071edb9b02"]
        leaf18 [label="L: 144fe8f27f0c61df326f1844d1da86299bb4364711aed1072f4f82beee745076
        C: 6aa9a5f492e443c543d3a5ec65559cd3d12f1dc1d91f97bf6473b938e3dc8567
        Stem: 18fb432d3b859ec3a1803854e8cceea75d092e52d0d4a4398d13022496745a
        C₁: 6ebe83593e4949887c8656f7d89977ec43b05e750f113b86eddd93874097edec
        C₂:0000000000000000000000000000000000000000000000000000000000000000"]
        internal -> leaf18
        val1800 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leaf18 -> val1800
        val1801 [label="e703000000000000000000000000000000000000000000000000000000000000"]
        leaf18 -> val1801
        val1802 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leaf18 -> val1802
        val1803 [label="c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"]
        leaf18 -> val1803
        val1804 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leaf18 -> val1804
        leaf31 [label="L: 1c810bab19085998981f7b39c36dc33f0b296a8842c202b9e36f61f8174388d7
        C: 09d0be9038095bca804d3f7749999fcdd6773dc19572486a3d868eeb20f9a011
        Stem: 318dea512b6f3237a2d4763cf49bf26de3b617fb0cabe38a97807a5549df4d
        C₁: 418ac1fa75cadeb7206b5fd1acacadc83299ed109b12706f3615eb1a68ff014f
        C₂:0000000000000000000000000000000000000000000000000000000000000000"]
        internal -> leaf31
        val3100 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leaf31 -> val3100
        val3101 [label="320122e8584be00d000000000000000000000000000000000000000000000000"]
        leaf31 -> val3101
        val3102 [label="0300000000000000000000000000000000000000000000000000000000000000"]
        leaf31 -> val3102
        leafe6 [label="L: 0bcb6d8a726b985c561e12d93c405f6dc8e650b68059d4f617e203340a2db8ee
        C: 2aafa1f8653887e59a68ce41e81db13c116e3469cfe5bdc0dc22f231e44b6027
        Stem: e6ed6c222e3985050b4fc574b136b0a42c63538e9ab970995cd418ba8e5264
        C₁: 4ba8426e3b81e2cfc0bb247b3b305b46a37ceb698fca8a9c37cfdda79cb731a6
        C₂:0000000000000000000000000000000000000000000000000000000000000000"]
        internal -> leafe6
        vale600 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leafe6 -> vale600
        vale601 [label="1bc176f2790c91e6000000000000000000000000000000000000000000000000"]
        leafe6 -> vale601
        vale602 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leafe6 -> vale602
        vale603 [label="c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"]
        leafe6 -> vale603
        vale604 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leafe6 -> vale604
        }
        3218a1214afce3ab490d04286f1e0e3177e9b74b4fb6fcc442ab2f27365ec5bb
--- PASS: TestReproduceTree (0.03s)
=== RUN   TestChunkifyCodeTestnet
    verkle_test.go:109: 0
    verkle_test.go:119: code=6080604052348015600f57600080fd5b506004361060285760003560e01c806381ca91d314602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122000382db0489577c1646ea2147a05f92f13f32336a32f1f82c6fb10b63e19f04064736f6c63430008070033, chunks=006080604052348015600f57600080fd5b506004361060285760003560e01c80006381ca91d314602d575b600080fd5b60336047565b604051603e9190605a56005b60405180910390f35b60005481565b6054816073565b82525050565b600000602082019050606d6000830184604d565b92915050565b60008190509190500056fea264697066735822122000382db0489577c1646ea2147a05f92f13f3230c36a32f1f82c6fb10b63e19f04064736f6c6343000807003300000000000000
    verkle_test.go:129: 0
    verkle_test.go:133: 32 1 0
    verkle_test.go:133: 64 2 1
    verkle_test.go:133: 96 3 0
    verkle_test.go:133: 128 4 13
    verkle_test.go:133: 160 5 0
    verkle_test.go:133: 192 6 0
    verkle_test.go:133: 224 7 1
    verkle_test.go:133: 256 8 0
    verkle_test.go:133: 288 9 0
    verkle_test.go:133: 320 10 0
    verkle_test.go:133: 352 11 0
    verkle_test.go:133: 384 12 0
    verkle_test.go:133: 416 13 0
    verkle_test.go:133: 448 14 3
    verkle_test.go:138: code=608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f566852414610030575b600080fd5b61003861004e565b6040516100459190610146565b60405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166381ca91d36040518163ffffffff1660e01b815260040160206040518083038186803b1580156100b857600080fd5b505afa1580156100cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f0919061010a565b905090565b60008151905061010481610170565b92915050565b6000602082840312156101205761011f61016b565b5b600061012e848285016100f5565b91505092915050565b61014081610161565b82525050565b600060208201905061015b6000830184610137565b92915050565b6000819050919050565b600080fd5b61017981610161565b811461018457600080fd5b5056fea2646970667358221220d8add45a339f741a94b4fe7f22e101b560dc8a5874cbd957a884d8c9239df86264736f6c63430008070033, chunks=00608060405234801561001057600080fd5b506004361061002b5760003560e0001c8063f566852414610030575b600080fd5b61003861004e565b604051610001459190610146565b60405180910390f35b6000600160009054906101000a90000473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffff0dffffffffffffffffffffffffff166381ca91d36040518163ffffffff1660e0001b815260040160206040518083038186803b1580156100b857600080fd5b50005afa1580156100cc573d6000803e3d6000fd5b505050506040513d601f1960011f820116820180604052508101906100f0919061010a565b905090565b6000008151905061010481610170565b92915050565b600060208284031215610120005761011f61016b565b5b600061012e848285016100f5565b9150509291505000565b61014081610161565b82525050565b600060208201905061015b600083000184610137565b92915050565b6000819050919050565b600080fd5b6101790081610161565b811461018457600080fd5b5056fea2646970667358221220d800add45a339f741a94b4fe7f22e101b560dc8a5874cbd957a884d8c9239df8620364736f6c634300080700330000000000000000000000000000000000000000
    verkle_test.go:155: code=6080604052348015600f57600080fd5b506004361060285760003560e01c8063ab5ed15014602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006001905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600081905091905056fea2646970667358221220163c79eab5630c3dbe22f7cc7692da08575198dda76698ae8ee2e3bfe62af3de64736f6c63430008070033, chunks=006080604052348015600f57600080fd5b506004361060285760003560e01c800063ab5ed15014602d575b600080fd5b60336047565b604051603e9190605d56005b60405180910390f35b60006001905090565b6057816076565b8252505056005b6000602082019050607060008301846050565b92915050565b60008190500091905056fea2646970667358221220163c79eab5630c3dbe22f7cc7692da080d575198dda76698ae8ee2e3bfe62af3de64736f6c6343000807003300000000
--- PASS: TestChunkifyCodeTestnet (0.00s)
=== RUN   TestChunkifyCodeSimple
    verkle_test.go:169: code=006301020304623a440c740102030405060708090a0b0c0d0e0f101112131400740102030405060708090a0b0c0d0e0f10111213141566010203040506077d0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e
    verkle_test.go:183: code=006301020304623a440c740102030405060708090a0b0c0d0e0f101112131400740102030405060708090a0b0c0d0e0f10111213141566010203040506077d0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e, chunks=00006301020304623a440c740102030405060708090a0b0c0d0e0f10111213140100740102030405060708090a0b0c0d0e0f1011121314156601020304050607007d0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e
--- PASS: TestChunkifyCodeSimple (0.00s)
=== RUN   TestChunkifyCodeFuzz
    verkle_test.go:198: code=037f0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d, chunks=00037f0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d
    verkle_test.go:211: code=0000000000000000000000000000000000000000000000000000000000007f, chunks=000000000000000000000000000000000000000000000000000000000000007f
    verkle_test.go:227: code=637f000000000000000000000000000000000000000000000000000000000000, chunks=00637f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    verkle_test.go:243: code=637f000000000000000000000000000000000000000000000000000000000000, chunks=00637f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
--- PASS: TestChunkifyCodeFuzz (0.00s)
=== RUN   TestReproduceCondrieuStemAggregationInProofOfAbsence
    verkle_test.go:311: commitments returned by proof:
    verkle_test.go:313: 0 627f6b7938d9298717bbe6c8da5c2ca46d846a7d50c19751f59fca48b146ebce
    verkle_test.go:313: 1 627f6b7938d9298717bbe6c8da5c2ca46d846a7d50c19751f59fca48b146ebce
    verkle_test.go:313: 2 627f6b7938d9298717bbe6c8da5c2ca46d846a7d50c19751f59fca48b146ebce
    verkle_test.go:313: 3 627f6b7938d9298717bbe6c8da5c2ca46d846a7d50c19751f59fca48b146ebce
    verkle_test.go:313: 4 627f6b7938d9298717bbe6c8da5c2ca46d846a7d50c19751f59fca48b146ebce
    verkle_test.go:313: 5 6cf3ed031fec1a334670c60ed1962f72f0ba4525f55f160508e4045f4e35f347
    verkle_test.go:313: 6 6cf3ed031fec1a334670c60ed1962f72f0ba4525f55f160508e4045f4e35f347
    verkle_test.go:313: 7 6cf3ed031fec1a334670c60ed1962f72f0ba4525f55f160508e4045f4e35f347
    verkle_test.go:313: 8 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 9 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 10 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 11 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 12 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 13 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 14 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 15 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 16 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 17 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
    verkle_test.go:313: 18 065b65119499cc60eff264a1f3d07dd983950c35badca89a83a246c5bc53fb12
    verkle_test.go:313: 19 065b65119499cc60eff264a1f3d07dd983950c35badca89a83a246c5bc53fb12
    verkle_test.go:313: 20 065b65119499cc60eff264a1f3d07dd983950c35badca89a83a246c5bc53fb12
    verkle_test.go:313: 21 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
    verkle_test.go:313: 22 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
    verkle_test.go:313: 23 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
    verkle_test.go:313: 24 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
    verkle_test.go:313: 25 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
    verkle_test.go:313: 26 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
    verkle_test.go:313: 27 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
    verkle_test.go:313: 28 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
    verkle_test.go:320: serialized: 0x37818079aee0
    verkle_test.go:321: tree: digraph D {
        internal [label="I: eeffa03f38fcb8fe7cc0bf6acadd175b4a318bf656475e43716a98397922461c"]
        leaf67 [label="L: 143c36ca89daa1cd4676da2b17e75c4b64f707421cfe3e0a143c806aca88e8c9
        C: 6cf3ed031fec1a334670c60ed1962f72f0ba4525f55f160508e4045f4e35f347
        Stem: 6766d007d8fd90ea45b2ac9027ff04fa57e49527f11010a12a73f58ffa5808
        C₁: 5f7d5c863fc3df227a8d2aa1a2f59c39b71e0a3cdffb81c77be43e1498ce863d
        C₂:0000000000000000000000000000000000000000000000000000000000000000"]
        internal -> leaf67
        val6700 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leaf67 -> val6700
        val6701 [label="53bfa56cfcaddf191e0200000000000000000000000000000000000000000000"]
        leaf67 -> val6701
        val6702 [label="0700000000000000000000000000000000000000000000000000000000000000"]
        leaf67 -> val6702
        val6703 [label="c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"]
        leaf67 -> val6703
        val6704 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leaf67 -> val6704
        leaf9f [label="L: 15ff19fc380952459f0897f03b0ec2f09d31bf6a6a7f92a248d82caa4f4b68c2
        C: 065b65119499cc60eff264a1f3d07dd983950c35badca89a83a246c5bc53fb12
        Stem: 9f2a59ea98d7cb610eff49447571e1610188937ce9266c6b4ded1b6ee37ecd
        C₁: 35638814564d1ddf339995b149441efbd65d27b25174f3ca3d061ec087007a2a
        C₂:0000000000000000000000000000000000000000000000000000000000000000"]
        internal -> leaf9f
        val9f00 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leaf9f -> val9f00
        val9f01 [label="389a890a6ce3e618843300000000000000000000000000000000000000000000"]
        leaf9f -> val9f01
        val9f02 [label="0200000000000000000000000000000000000000000000000000000000000000"]
        leaf9f -> val9f02
        val9f03 [label="c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"]
        leaf9f -> val9f03
        }
        627f6b7938d9298717bbe6c8da5c2ca46d846a7d50c19751f59fca48b146ebce
    verkle_test.go:323: 6
--- PASS: TestReproduceCondrieuStemAggregationInProofOfAbsence (0.03s)
=== RUN   TestReproduceCondrieuPoAStemConflictWithAnotherStem
    verkle_test.go:361: commitments returned by proof:
    verkle_test.go:363: 0 4c6873d70130e5f012fff0a26b66fb9fe78e23d0458fe4ab318762fa836ac2e8
    verkle_test.go:363: 1 2e3943d081702c5784d306e0dbf19be2bb304264c4f1f84ec9a8cc6ab5da130b
    verkle_test.go:363: 2 2e3943d081702c5784d306e0dbf19be2bb304264c4f1f84ec9a8cc6ab5da130b
    verkle_test.go:363: 3 2e3943d081702c5784d306e0dbf19be2bb304264c4f1f84ec9a8cc6ab5da130b
    verkle_test.go:363: 4 38f30e21c79747190371df99e88b886638be445d44f8f9b56ca7c062ea329944
    verkle_test.go:363: 5 38f30e21c79747190371df99e88b886638be445d44f8f9b56ca7c062ea329944
    verkle_test.go:370: serialized: 0x3781808c7110
    verkle_test.go:371: tree: digraph D {
        internal [label="I: fd3f379182ccb0b1c56f5733f6cd68caa6ec760f05b2b7156a6841f5e8919417"]
        leaf67 [label="L: 10f1c0c95373ce33d34807d3c30025fd75ba4fc7715d0d21f9e51a087c661156
        C: 2e3943d081702c5784d306e0dbf19be2bb304264c4f1f84ec9a8cc6ab5da130b
        Stem: 6766d007d8fd90ea45b2ac9027ff04fa57e49527f11010a12a73f58ffa5808
        C₁: 38f30e21c79747190371df99e88b886638be445d44f8f9b56ca7c062ea329944
        C₂:0000000000000000000000000000000000000000000000000000000000000000"]
        internal -> leaf67
        val6700 [label="0000000000000000000000000000000000000000000000000000000000000000"]
        leaf67 -> val6700
        }
        4c6873d70130e5f012fff0a26b66fb9fe78e23d0458fe4ab318762fa836ac2e8
    verkle_test.go:373: 2
--- PASS: TestReproduceCondrieuPoAStemConflictWithAnotherStem (0.03s)
=== RUN   TestEmptyKeySetInProveAndSerialize
--- PASS: TestEmptyKeySetInProveAndSerialize (0.00s)
=== RUN   TestGetTreeKeys
    verkle_test.go:388: key=1540dfad7755b40be0768c6aa0a5096fbf0215e0e8cf354dd928a17834646600
    verkle_test.go:389: actualKey=1540dfad7755b40be0768c6aa0a5096fbf0215e0e8cf354dd928a17834646600
--- PASS: TestGetTreeKeys (0.00s)
=== CONT  TestIncompleteSyncHash
=== CONT  TestDecodeNode
--- PASS: TestDecodeNode (0.84s)
--- PASS: TestIncompleteSyncHash (3.63s)
PASS
ok      github.com/ethereum/go-ethereum/trie    11.481s

@eclairss17 eclairss17 self-assigned this Mar 25, 2026
@eclairss17 eclairss17 added the bug Something isn't working label Mar 25, 2026
@eclairss17 eclairss17 changed the title Fix phantom nodes from account deletion Fix phantom nodes from account deletion #3 Mar 25, 2026
@eclairss17 eclairss17 changed the title Fix phantom nodes from account deletion #3 Fix phantom nodes from account deletion Mar 25, 2026
@eclairss17 eclairss17 changed the title Fix phantom nodes from account deletion Fix phantom nodes from account deletion, Issue #3 Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix non-existent account deletion in go-ethereum's verkle trie implementation

1 participant