From f6f548711b3f215eb8ebb2f9a98a885a92e87d22 Mon Sep 17 00:00:00 2001 From: i-norden Date: Fri, 17 Dec 2021 11:09:49 -0600 Subject: [PATCH 1/4] log processing bug fix --- statediff/indexer/ipfs/ipld/eth_log_trie.go | 8 +---- statediff/indexer/ipfs/ipld/eth_parser.go | 29 +++++++++++++++++-- .../indexer/ipfs/ipld/eth_receipt_trie.go | 8 +---- statediff/indexer/ipfs/ipld/eth_tx_trie.go | 6 +--- 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/statediff/indexer/ipfs/ipld/eth_log_trie.go b/statediff/indexer/ipfs/ipld/eth_log_trie.go index 2e36f0a68..d6b5e945f 100644 --- a/statediff/indexer/ipfs/ipld/eth_log_trie.go +++ b/statediff/indexer/ipfs/ipld/eth_log_trie.go @@ -114,14 +114,8 @@ func (rt *logTrie) getNodeFromDB(key []byte) (*EthLogTrie, error) { if err != nil { return nil, err } - - c, err := RawdataToCid(MEthLogTrie, rawdata, multihash.KECCAK_256) - if err != nil { - return nil, err - } - tn := &TrieNode{ - cid: c, + cid: keccak256ToCid(MEthLogTrie, key), rawdata: rawdata, } return &EthLogTrie{TrieNode: tn}, nil diff --git a/statediff/indexer/ipfs/ipld/eth_parser.go b/statediff/indexer/ipfs/ipld/eth_parser.go index 0b4780f8a..15fad5e72 100644 --- a/statediff/indexer/ipfs/ipld/eth_parser.go +++ b/statediff/indexer/ipfs/ipld/eth_parser.go @@ -238,14 +238,30 @@ func processReceiptsAndLogs(rcts []*types.Receipt, expectedRctRoot []byte) ([]*E return ethRctNodes, rctTrieNodes, ethLogTrieNodes, ethLogleafNodeCids, ethRctleafNodeCids, err } +const keccak256Length = 32 + func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, error) { logTr := newLogTrie() + shortLogCIDs := make(map[uint64]cid.Cid, len(logs)) for idx, log := range logs { - ethLog, err := NewLog(log) + logRaw, err := rlp.EncodeToBytes(log) if err != nil { return nil, nil, common.Hash{}, err } - if err = logTr.Add(idx, ethLog.RawData()); err != nil { + // if len(logRaw) <= keccak256Length it is possible this value's "leaf node" + // will be stored in its parent branch but only if len(partialPathOfTheNode) + len(logRaw) <= keccak256Length + // But we can't tell what the partial path will be until the trie is Commit()-ed + // So wait until we collect all the leaf nodes, and if we are missing any at the indexes we note in shortLogCIDs + // we know that these "leaf nodes" were internalized into their parent branch node and we move forward with + // using the cid.Cid we cached in shortLogCIDs + if len(logRaw) <= keccak256Length { + logNode, err := NewLog(log) + if err != nil { + return nil, nil, common.Hash{}, err + } + shortLogCIDs[uint64(idx)] = logNode.Cid() + } + if err = logTr.Add(idx, logRaw); err != nil { return nil, nil, common.Hash{}, err } } @@ -260,7 +276,7 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro return nil, nil, common.Hash{}, err } - leafNodeCids := make([]cid.Cid, len(leafNodes)) + leafNodeCids := make([]cid.Cid, len(logs)) for i, ln := range leafNodes { var idx uint @@ -271,6 +287,13 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro } leafNodeCids[idx] = ln.Cid() } + // this is where we check which logs <= keccak256Length were actually internalized into parent branch node + // and replace those that were with the cid.Cid for the raw log IPLD + for idx, lCID := range shortLogCIDs { + if !leafNodeCids[idx].Defined() { + leafNodeCids[idx] = lCID + } + } return logTrieNodes, leafNodeCids, common.BytesToHash(logTr.rootHash()), err } diff --git a/statediff/indexer/ipfs/ipld/eth_receipt_trie.go b/statediff/indexer/ipfs/ipld/eth_receipt_trie.go index fc1480703..b31b14d6b 100644 --- a/statediff/indexer/ipfs/ipld/eth_receipt_trie.go +++ b/statediff/indexer/ipfs/ipld/eth_receipt_trie.go @@ -166,14 +166,8 @@ func (rt *rctTrie) getNodeFromDB(key []byte) (*EthRctTrie, error) { if err != nil { return nil, err } - - cid, err := RawdataToCid(MEthTxReceiptTrie, rawdata, multihash.KECCAK_256) - if err != nil { - return nil, err - } - tn := &TrieNode{ - cid: cid, + cid: keccak256ToCid(MEthTxReceiptTrie, key), rawdata: rawdata, } diff --git a/statediff/indexer/ipfs/ipld/eth_tx_trie.go b/statediff/indexer/ipfs/ipld/eth_tx_trie.go index 7e79ff164..4edc7dd7b 100644 --- a/statediff/indexer/ipfs/ipld/eth_tx_trie.go +++ b/statediff/indexer/ipfs/ipld/eth_tx_trie.go @@ -135,12 +135,8 @@ func (tt *txTrie) getNodes() ([]*EthTxTrie, error) { if err != nil { return nil, err } - c, err := RawdataToCid(MEthTxTrie, rawdata, multihash.KECCAK_256) - if err != nil { - return nil, err - } tn := &TrieNode{ - cid: c, + cid: keccak256ToCid(MEthTxTrie, k), rawdata: rawdata, } out = append(out, &EthTxTrie{TrieNode: tn}) From 167d89d4f47e238f8a3e53d7189458dc323d076f Mon Sep 17 00:00:00 2001 From: i-norden Date: Fri, 17 Dec 2021 12:57:21 -0600 Subject: [PATCH 2/4] mainnet tests for problematic blocks (edge cases) --- .../indexer/mainnet_tests/block_12579670.rlp | Bin 0 -> 4454 bytes .../indexer/mainnet_tests/block_12600011.rlp | Bin 0 -> 5883 bytes .../indexer/mainnet_tests/block_12619985.rlp | Bin 0 -> 4041 bytes .../indexer/mainnet_tests/block_12625121.rlp | Bin 0 -> 16079 bytes .../indexer/mainnet_tests/block_12655432.rlp | Bin 0 -> 4044 bytes .../indexer/mainnet_tests/block_12914664.rlp | Bin 0 -> 37150 bytes .../indexer/mainnet_tests/indexer_test.go | 107 ++++++++ .../mainnet_tests/receipts_12579670.rlp | Bin 0 -> 849935 bytes .../mainnet_tests/receipts_12600011.rlp | Bin 0 -> 690821 bytes .../mainnet_tests/receipts_12619985.rlp | Bin 0 -> 571436 bytes .../mainnet_tests/receipts_12625121.rlp | Bin 0 -> 706015 bytes .../mainnet_tests/receipts_12655432.rlp | Bin 0 -> 850429 bytes .../mainnet_tests/receipts_12914664.rlp | Bin 0 -> 89259 bytes .../indexer/mainnet_tests/test_helpers.go | 235 ++++++++++++++++++ 14 files changed, 342 insertions(+) create mode 100644 statediff/indexer/mainnet_tests/block_12579670.rlp create mode 100644 statediff/indexer/mainnet_tests/block_12600011.rlp create mode 100644 statediff/indexer/mainnet_tests/block_12619985.rlp create mode 100644 statediff/indexer/mainnet_tests/block_12625121.rlp create mode 100644 statediff/indexer/mainnet_tests/block_12655432.rlp create mode 100644 statediff/indexer/mainnet_tests/block_12914664.rlp create mode 100644 statediff/indexer/mainnet_tests/indexer_test.go create mode 100644 statediff/indexer/mainnet_tests/receipts_12579670.rlp create mode 100644 statediff/indexer/mainnet_tests/receipts_12600011.rlp create mode 100644 statediff/indexer/mainnet_tests/receipts_12619985.rlp create mode 100644 statediff/indexer/mainnet_tests/receipts_12625121.rlp create mode 100644 statediff/indexer/mainnet_tests/receipts_12655432.rlp create mode 100644 statediff/indexer/mainnet_tests/receipts_12914664.rlp create mode 100644 statediff/indexer/mainnet_tests/test_helpers.go diff --git a/statediff/indexer/mainnet_tests/block_12579670.rlp b/statediff/indexer/mainnet_tests/block_12579670.rlp new file mode 100644 index 0000000000000000000000000000000000000000..6b4f3f773f278ab72755fa70b9574ae10799bb99 GIT binary patch literal 4454 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 literal 0 HcmV?d00001 diff --git a/statediff/indexer/mainnet_tests/block_12600011.rlp b/statediff/indexer/mainnet_tests/block_12600011.rlp new file mode 100644 index 0000000000000000000000000000000000000000..96032b0c2152373ca99884090aecef7d84d7ad66 GIT binary patch literal 5883 zcma)AXH*m07M_F%AyO6T(z}45^kyj1B!CoYDn+<}NDC@e3<)vxB9SI#XiD!LQIsx- zbOaHlDtJLa#2}zA@!j{HuEl-p&Y$erv(J3ruIFTSSV=ojCJ=It%AL_70BP%PqTYT1 zHJv;@i)abNLkGVHZmM^eYJ$i6Q6FZyF9nt0>s;&mM>$81oaG`$T|c^>qqUD5P0}N# z_1M*)b)Ni`p5}BEvMHIC)E7Aqmf}u**9ua+o3(m#8;w8VY1oqK5RJ5C4OZNEQzvxd z8@OVM+J$n4rWs>XmIrcP&Zg%qvMlA!$svyUN|o1~CxqjxhESl0eo=2aI%_D2MI^Q;7kC5g=_-@BFH)@gt7pDBLRScB7^~aNB|Cn z00<@kfB|qAz(f|{a5@MRl#dS%M2G=o7IXmltz9kh#Vt_8#V zNjks zzN5b6|GHWw#!miO!Td7Qjb^1JwIq<_jf0K9`-?7>oGEdA@8oe-leH_i%+^9^+4l14 zPp2Lw=w0MC{^9^&M8FLOU8&_C$(5@C9eaP4W-dQ#^I`cW5JKnZIE^YuQF{imubG<~ z)oEGjeU?$s38FTO_wN_NA$mc}Ge@`*G}FULo>+-dJgktd2f&)aiPPruuT)rjq>O@? zvUrt3Ok!YRJ_H)heS=tX(u6_dXQh@YoR2FLLT4=B$}zI5&CKOZP?H5lbyBY9x(Fqt{EE(+L7)Wa_4n@f5X zVKXgzx1MxYBR2?yJgphQC&H^_FjvJQ`gWrPAXW%z@$N>cL;kI1VZRqIaI+7yzHhB@ z{|VX|r?BOFtFVig%2KBdUl8NsLKWPI zh%IB$@GEHcH^)!q35*&$sKnD$zYLvt)ET3o}dO4kg;PYUy(|&jg5G!Q08#}M>Uv0vADT2JA$HN>9rN#wxCZi&+?rYqLv|@Vx zG2gN0^v7n@jra>jyO7$hx+!}Q;U!<(V00t=hzG4}qU%xKkRQ4Yw=W{V?U^R=Jin^) zpLn+a!?PruW2NW2+AyN};eF|BSutwfwUwau#yvx<{J=*17tkPxB{e4*Rzg zQ;JND?RQGn7_Jwh?Y)}{LH|vY)%Pjpi8jTH)C2l6QUU2dgk{XG^XX==v}~=KSpLMb z`yXD8&D-Jg5dl9^Vry=ClmsY;ZQ;gMANQnEm1B`bbm+B)yJL#wMl zg7Bnsx1@*J=`l_7M=&&FwxU1RLlM_vxWAyC>6t6-&@QzbR)XXy@_c^bnFZ+@HJ(b# zpANuIpor|f5Qp9J07w6ujWwE|9(mPW2`Pzye)}dK^~rjP?47~-+H;MY-zy?E8J@8o zySAXF7Fv#YUv29Uldtd+@5%~HW8gh zx(35jQBQ0A98XS8X)&uX7Vmrk^MbaDgy+z=!+8-@0~?hxiM5kt-;$%N8!~LOyZ|Y+ z0?ZYc;|BQFLGzJ5+X~Oq<1A2=26!}8BR)cUefhc1mkZkW&=VKJ*nDdphi3;=NdcPq zRu9SB1%!_A-+(xnPa|j_qfrAS4BAvm=|f@47aP>ehA~`}`C!Y7DA46LsFJ)OdKb zI7lNCG}#SAf7bGR?jrXx)18J!nZw%fV`E?1w8@cZ#Tnl*D5)4j!73+jGYlvG={8dk zRnG^L(4y%tV&A%WcS{Ek-jVx%NstruX%hke*cyzsP<6hNb-FEpTV-7i(O96!oG=?X ze0)5w{P@@{FgT`qLfZmS+j~;aJdFSJJfI=U>$f<>d7pN2x}I%EhU7u}Z?4#-d7@zl zQpq&ceH%9r{f_UW^;S_^SOS3xE#Kq?QU*m`VL~UP#uYjd8qN@g4X3*|AdT_YSB8Q9 z=`KT>t>#_OnQ9jASej$k=A=NlRCF={(y0%&vZ4d8*0U(S?ls;bdHhU5Ie@iXCyGN> zHT>lGnX@^NkC9RuuW-%$3j`Wx&VH;br4@1m3q9f;4g0a44n=Awl-i&}jNyHp76FO% z2rs#$YHm=XyZb9t$|b$~VW-YKU5-`@^QFl(YBzak)`aQ%xGX(V5jhJU^KJmPR{WnP zK}e0=N@Y&#=-5hd5I&u`=wwu#*Z)ZZgtJ-il`v>2tE%6j3)A=^?r%zuHh!sJq{QWT zar+&djf<;T<>7nK9>M3A7=n@-Mid;GvjfFN6O?n^syJ4Xl^n(61=bsSAOsMn>Dt2f%QFufv7v_a7gE zK*J0s)_0YiIP_&mXR92OC0$Z{I$65wKz4uhXx0v6y5mYD7f0m$8pik7dp9nh9#?eB z4;;ydiB#1AXkN_q1*_%h{V8Q#r!y^E8bce-oIWY7e2-L2htZ512XJ)3#N2HQAh9b_@VRUAzrD2sZzACJnu>+GS!;` zLJebkg|BZoaIlniX{by)$CtJ1DzYh}F{%cE8W|vKMU%1|DCl4B0QAZ_x|qPY3d`MIep+pC>jjW|yl%y4Frx7gf;7 zmk;^3Z-qV8>i6a!NGTvE5+a9(3SFEAa4!}jiQE-0hAaHL+0Q(98vHeB;oQz9e;qkG zJRXfIfA9Uz2vq+1{LISvsS;N7h?4!)b#ctBt|aIdEDXN0cuh62hoYucb8f6epG2`+ zLv2Q=u9-Z4&CHQ?l70`Auvm9<^Q0ef{V1N)QtZ*8xUuW}Fs-Q4T=b~+lYA)*X@xw; z*nK$x+%W?J(MDED!uHt2gJ%`vd9o|zDd)d!yu>tyA7(h0{41A^NhJN-FfHmxC#E33 z+EG!!JSpba=Lg8h19ZQt4r{x)pwWSRR_AGcEcsi?Xn~zbD@zD}9{ghG9F|_JZRf(cY5GH|yaDib5}R1;vm9}r zv>6X^5|)O5K4+)=xmdnpJ--sm5FSf%{|_T-z7k>qGOO3RN9~MEs#|mO^N>5!mHtmL z;cs5?VuitNb~~xY6+rp0n#aX#O-;e;YjIukg=AQ<~tZ8?|J{y*NmsQK%B${D$W1rd2qBPweqt zSR3VxqWM~((og#9cv13>X@VCL!E_OF4hkiOn*oAcM7qGd~yX9|=EM3;&FV3FW$hv&>jXqxl{d_9Q7*&x$ z-uR1So2cz(_zY9Pc0Wc#BQr~JW)m)YUxsjckCD1ti9}HTLHE|o9mEvyVBc>~Bj^T+ z#V#;l)LAU4=dg_4;M3#3xwaQ%ub-1svlVx%k5@2fMTjGPYmmSm8%{*5Q%)J#+!#~C zq|_$b8oGHMpG-L|PWyD_Q}$0M^BF(ksNI)9@AZN& zx%N16qcHA<_;0RV9msGj^CBL%xu-BAa*XHYY)f`&1jH#V$-Yd663EXM_tn3YyWbLR zd}=S#u<4$nZI{yX)z}nMb=jDh)piO*9kGWj2-c=#xmT$?ILoNw@GYovpx?=@t+Hxy z;9ZTuZ)n9ZL^s=^=J%#J3r(uV_|*7p>8}xx$I(V!H!CS9>irGv zv|{I=bM%xjtcE1vw;u=(ID8-iTH}e6nW*5g?BO#bt!Gr<{f2gEdfM?^ z{wu|IfqoZeH2Xbndqg55pyd|NIH#!o#BhVu_sVY5mE*qzscJGbuddi$aCN9jDvu1k z?_v?2#-nWo^7g!u6m!PTMr1Z1Iy>KPvAgx~N>U*M!|$2iWIrXo@LQ2!BAyX26R)I( zB*sg=)-e_u-PAfnIJ5cw-WPy!@bJ!Q*SJz%`iyC+iORT2*fcuz zO&a>L1xC=1GblEZzfO|VcE6wMB(o7`G~W|>*Qw#~BL7C2wg$+{^Nuu1BCh8Z^1&mJ z7}SnaCYwuX&tCXQGTwNx=&+D~43AlcZveMfSug48FWuI=_=o7V;SSvQ3De|Q#Co{R zQ1+2K%q}(PdlalgExB9LTPL(z%+P9Y>pfq@JuUZ((x7G?^-H40)GRB53`%R?pTB>c eI-p)33O1gqBDLsr`ug95S;nEg6pVHswEYXt9E9}% literal 0 HcmV?d00001 diff --git a/statediff/indexer/mainnet_tests/block_12619985.rlp b/statediff/indexer/mainnet_tests/block_12619985.rlp new file mode 100644 index 0000000000000000000000000000000000000000..0e735313f540a2353b7bbe65abbfa0d23f5bb4cd GIT binary patch literal 4041 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. + +package mainnet_tests + +import ( + "fmt" + "math/big" + "os" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/params" + "github.com/ethereum/go-ethereum/statediff/indexer" + "github.com/ethereum/go-ethereum/statediff/indexer/mocks" + "github.com/ethereum/go-ethereum/statediff/indexer/postgres" + "github.com/ethereum/go-ethereum/statediff/indexer/shared" +) + +var ( + err error + db *postgres.DB + chainConf = params.MainnetChainConfig +) + +func init() { + if os.Getenv("MODE") != "statediff" { + fmt.Println("Skipping statediff test") + os.Exit(0) + } +} + +func TestPushBlockAndState(t *testing.T) { + conf := DefaultTestConfig + rawURL := os.Getenv(TEST_RAW_URL) + if rawURL == "" { + fmt.Printf("Warning: no raw url configured for statediffing mainnet tests, will look for local file and"+ + "then try default endpoint (%s)\r\n", DefaultTestConfig.RawURL) + } else { + conf.RawURL = rawURL + } + for _, blockNumber := range problemBlocks { + conf.BlockNumber = big.NewInt(blockNumber) + tb, trs, err := TestBlockAndReceipts(conf) + require.NoError(t, err) + testPushBlockAndState(t, tb, trs) + } + testBlock, testReceipts, err := TestBlockAndReceiptsFromEnv(conf) + require.NoError(t, err) + testPushBlockAndState(t, testBlock, testReceipts) +} + +func testPushBlockAndState(t *testing.T, block *types.Block, receipts types.Receipts) { + t.Run("Test PushBlock and PushStateNode", func(t *testing.T) { + setup(t, block, receipts) + tearDown(t) + }) +} + +func setup(t *testing.T, testBlock *types.Block, testReceipts types.Receipts) { + db, err = shared.SetupDB() + if err != nil { + t.Fatal(err) + } + ind, err := indexer.NewStateDiffIndexer(chainConf, db) + require.NoError(t, err) + var tx *indexer.BlockTx + tx, err = ind.PushBlock( + testBlock, + testReceipts, + testBlock.Difficulty()) + require.NoError(t, err) + + defer func(){ + if err := tx.Close(err); err != nil { + t.Fatal(err) + } + }() + + for _, node := range mocks.StateDiffs { + err = ind.PushStateNode(tx, node) + require.NoError(t, err) + } + + shared.ExpectEqual(t, tx.BlockNumber, testBlock.Number().Uint64()) +} + +func tearDown(t *testing.T) { + indexer.TearDownDB(t, db) + err = db.Close() + require.NoError(t, err) +} diff --git a/statediff/indexer/mainnet_tests/receipts_12579670.rlp b/statediff/indexer/mainnet_tests/receipts_12579670.rlp new file mode 100644 index 0000000000000000000000000000000000000000..e69de8fd9b61b926d47179de1ff9f37fa4fd4f4b GIT binary patch literal 849935 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 Z=F2{y1E$Y5=heGk`K(Xwbj`@f{{=n~!tDS6 literal 0 HcmV?d00001 diff --git a/statediff/indexer/mainnet_tests/receipts_12600011.rlp b/statediff/indexer/mainnet_tests/receipts_12600011.rlp new file mode 100644 index 0000000000000000000000000000000000000000..ae6d4f0c2d082dd5fb959d2df1acc83b64ea7751 GIT binary patch literal 690821 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 F{~tj8_&Wdq literal 0 HcmV?d00001 diff --git a/statediff/indexer/mainnet_tests/receipts_12619985.rlp b/statediff/indexer/mainnet_tests/receipts_12619985.rlp new file mode 100644 index 0000000000000000000000000000000000000000..a9ba84bd275dc988f3ab79231030dfb3e8c96a6c GIT binary patch literal 571436 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 Rcb}Y#Nf*mb%f-mj{{y6tEmZ&j literal 0 HcmV?d00001 diff --git a/statediff/indexer/mainnet_tests/receipts_12625121.rlp b/statediff/indexer/mainnet_tests/receipts_12625121.rlp new file mode 100644 index 0000000000000000000000000000000000000000..4d3a8532c2bc91401df73ac14d9328a345b21684 GIT binary patch literal 706015 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 literal 0 HcmV?d00001 diff --git a/statediff/indexer/mainnet_tests/receipts_12914664.rlp b/statediff/indexer/mainnet_tests/receipts_12914664.rlp new file mode 100644 index 0000000000000000000000000000000000000000..3cf8e88951e7c0e85bc603246dbaf2defdb4a4bf GIT binary patch literal 89259 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. + +package mainnet_tests + +import ( + "context" + "errors" + "fmt" + "math/big" + "os" + + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/ethclient" + "github.com/ethereum/go-ethereum/rlp" +) + +const ( + defaultBlockFilePath = "./block" + defaultReceiptsFilePath = "./receipts" +) + +const ( + TEST_RAW_URL = "TEST_RAW_URL" + TEST_BLOCK_NUMBER = "TEST_BLOCK_NUMBER" +) + +var problemBlocks = []int64{ + 12600011, + 12619985, + 12625121, + 12655432, + 12579670, + 12914664, +} + +// TestConfig holds configuration params for mainnet tests +type TestConfig struct { + RawURL string + BlockNumber *big.Int + LocalCache bool +} + +// DefaultTestConfig is the default TestConfig +var DefaultTestConfig = TestConfig{ + RawURL: "http://127.0.0.1:8545", + BlockNumber: big.NewInt(12914664), + LocalCache: true, +} + +// TestBlockAndReceiptsFromEnv retrieves the block and receipts using env variables to override default config block number +func TestBlockAndReceiptsFromEnv(conf TestConfig) (*types.Block, types.Receipts, error) { + blockNumberStr := os.Getenv(TEST_BLOCK_NUMBER) + blockNumber, ok := new(big.Int).SetString(blockNumberStr, 10) + if !ok { + fmt.Printf("Warning: no blockNumber configured for statediffing mainnet tests, using default (%d)\r\n", + DefaultTestConfig.BlockNumber) + } else { + conf.BlockNumber = blockNumber + } + return TestBlockAndReceipts(conf) +} + +// TestBlockAndReceipts retrieves the block and receipts for the provided test config +// It first tries to load files from the local system before setting up and using an ethclient.Client to pull the data +func TestBlockAndReceipts(conf TestConfig) (*types.Block, types.Receipts, error) { + var cli *ethclient.Client + var err error + var block *types.Block + var receipts types.Receipts + blockFilePath := fmt.Sprintf("%s_%s.rlp", defaultBlockFilePath, conf.BlockNumber.String()) + if _, err = os.Stat(blockFilePath); !errors.Is(err, os.ErrNotExist) { + fmt.Printf("local file (%s) found for block %s\n", blockFilePath, conf.BlockNumber.String()) + block, err = LoadBlockRLP(blockFilePath) + if err != nil { + fmt.Printf("loading local file (%s) failed (%s), dialing remote client at %s\n", blockFilePath, err.Error(), conf.RawURL) + cli, err = ethclient.Dial(conf.RawURL) + if err != nil { + return nil, nil, err + } + block, err = FetchBlock(cli, conf.BlockNumber) + if err != nil { + return nil, nil, err + } + if conf.LocalCache { + if err := WriteBlockRLP(blockFilePath, block); err != nil { + return nil, nil, err + } + } + } + } else { + fmt.Printf("no local file found for block %s, dialing remote client at %s\n", conf.BlockNumber.String(), conf.RawURL) + cli, err = ethclient.Dial(conf.RawURL) + if err != nil { + return nil, nil, err + } + block, err = FetchBlock(cli, conf.BlockNumber) + if err != nil { + return nil, nil, err + } + if conf.LocalCache { + if err := WriteBlockRLP(blockFilePath, block); err != nil { + return nil, nil, err + } + } + } + receiptsFilePath := fmt.Sprintf("%s_%s.rlp", defaultReceiptsFilePath, conf.BlockNumber.String()) + if _, err = os.Stat(receiptsFilePath); !errors.Is(err, os.ErrNotExist) { + fmt.Printf("local file (%s) found for block %s receipts\n", receiptsFilePath, conf.BlockNumber.String()) + receipts, err = LoadReceiptsEncoding(receiptsFilePath, len(block.Transactions())) + if err != nil { + fmt.Printf("loading local file (%s) failed (%s), dialing remote client at %s\n", receiptsFilePath, err.Error(), conf.RawURL) + if cli == nil { + cli, err = ethclient.Dial(conf.RawURL) + if err != nil { + return nil, nil, err + } + } + receipts, err = FetchReceipts(cli, block) + if err != nil { + return nil, nil, err + } + if conf.LocalCache { + if err := WriteReceiptsEncoding(receiptsFilePath, block.Number(), receipts); err != nil { + return nil, nil, err + } + } + } + } else { + fmt.Printf("no local file found for block %s receipts, dialing remote client at %s\n", conf.BlockNumber.String(), conf.RawURL) + if cli == nil { + cli, err = ethclient.Dial(conf.RawURL) + if err != nil { + return nil, nil, err + } + } + receipts, err = FetchReceipts(cli, block) + if err != nil { + return nil, nil, err + } + if conf.LocalCache { + if err := WriteReceiptsEncoding(receiptsFilePath, block.Number(), receipts); err != nil { + return nil, nil, err + } + } + } + return block, receipts, nil +} + +// FetchBlock fetches the block at the provided height using the ethclient.Client +func FetchBlock(cli *ethclient.Client, blockNumber *big.Int) (*types.Block, error) { + return cli.BlockByNumber(context.Background(), blockNumber) +} + +// FetchReceipts fetches the receipts for the provided block using the ethclient.Client +func FetchReceipts(cli *ethclient.Client, block *types.Block) (types.Receipts, error) { + receipts := make(types.Receipts, len(block.Transactions())) + for i, tx := range block.Transactions() { + rct, err := cli.TransactionReceipt(context.Background(), tx.Hash()) + if err != nil { + return nil, err + } + receipts[i] = rct + } + return receipts, nil +} + +// WriteBlockRLP writes out the RLP encoding of the block to the provided filePath +func WriteBlockRLP(filePath string, block *types.Block) error { + if filePath == "" { + filePath = fmt.Sprintf("%s_%s.rlp", defaultBlockFilePath, block.Number().String()) + } + if _, err := os.Stat(filePath); !errors.Is(err, os.ErrNotExist) { + return fmt.Errorf("cannot create file, file (%s) already exists", filePath) + } + file, err := os.Create(filePath) + if err != nil { + return fmt.Errorf("unable to create file (%s), err: %v", filePath, err) + } + fmt.Printf("writing block rlp to file at %s\r\n", filePath) + if err := block.EncodeRLP(file); err != nil { + return err + } + return file.Close() +} + +// LoadBlockRLP loads block from the rlp at filePath +func LoadBlockRLP(filePath string) (*types.Block, error) { + blockBytes, err := os.ReadFile(filePath) + if err != nil { + return nil, err + } + block := new(types.Block) + return block, rlp.DecodeBytes(blockBytes, block) +} + +// LoadReceiptsEncoding loads receipts from the encoding at filePath +func LoadReceiptsEncoding(filePath string, cap int) (types.Receipts, error) { + rctsBytes, err := os.ReadFile(filePath) + if err != nil { + return nil, err + } + receipts := new(types.Receipts) + return *receipts, rlp.DecodeBytes(rctsBytes, receipts) +} + +// WriteReceiptsEncoding writes out the consensus encoding of the receipts to the provided io.WriteCloser +func WriteReceiptsEncoding(filePath string, blockNumber *big.Int, receipts types.Receipts) error { + if filePath == "" { + filePath = fmt.Sprintf("%s_%s.rlp", defaultReceiptsFilePath, blockNumber.String()) + } + if _, err := os.Stat(filePath); !errors.Is(err, os.ErrNotExist) { + return fmt.Errorf("cannot create file, file (%s) already exists", filePath) + } + file, err := os.Create(filePath) + if err != nil { + return fmt.Errorf("unable to create file (%s), err: %v", filePath, err) + } + defer file.Close() + fmt.Printf("writing receipts rlp to file at %s\r\n", filePath) + return rlp.Encode(file, receipts) +} From bbfaea9be985ed28fc064c63f045f8a41e246218 Mon Sep 17 00:00:00 2001 From: i-norden Date: Fri, 17 Dec 2021 16:44:44 -0600 Subject: [PATCH 3/4] fix log trie fk bug --- statediff/indexer/indexer.go | 2 +- statediff/indexer/ipfs/ipld/eth_log_trie.go | 6 ++-- statediff/indexer/ipfs/ipld/eth_parser.go | 35 ++++++++++--------- .../indexer/mainnet_tests/indexer_test.go | 6 ++-- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/statediff/indexer/indexer.go b/statediff/indexer/indexer.go index bab5fa938..60d69f932 100644 --- a/statediff/indexer/indexer.go +++ b/statediff/indexer/indexer.go @@ -299,7 +299,7 @@ type processArgs struct { rctTrieNodes []*ipld.EthRctTrie txNodes []*ipld.EthTx txTrieNodes []*ipld.EthTxTrie - logTrieNodes [][]*ipld.EthLogTrie + logTrieNodes [][]node.Node logLeafNodeCIDs [][]cid.Cid rctLeafNodeCIDs []cid.Cid } diff --git a/statediff/indexer/ipfs/ipld/eth_log_trie.go b/statediff/indexer/ipfs/ipld/eth_log_trie.go index d6b5e945f..90d694c1b 100644 --- a/statediff/indexer/ipfs/ipld/eth_log_trie.go +++ b/statediff/indexer/ipfs/ipld/eth_log_trie.go @@ -3,6 +3,8 @@ package ipld import ( "fmt" + node "github.com/ipfs/go-ipld-format" + "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/rlp" "github.com/ipfs/go-cid" @@ -91,13 +93,13 @@ func newLogTrie() *logTrie { // getNodes invokes the localTrie, which computes the root hash of the // log trie and returns its database keys, to return a slice // of EthLogTrie nodes. -func (rt *logTrie) getNodes() ([]*EthLogTrie, error) { +func (rt *logTrie) getNodes() ([]node.Node, error) { keys, err := rt.getKeys() if err != nil { return nil, err } - out := make([]*EthLogTrie, 0, len(keys)) + out := make([]node.Node, 0, len(keys)) for _, k := range keys { n, err := rt.getNodeFromDB(k) if err != nil { diff --git a/statediff/indexer/ipfs/ipld/eth_parser.go b/statediff/indexer/ipfs/ipld/eth_parser.go index 15fad5e72..d2608bbd5 100644 --- a/statediff/indexer/ipfs/ipld/eth_parser.go +++ b/statediff/indexer/ipfs/ipld/eth_parser.go @@ -23,6 +23,8 @@ import ( "io" "io/ioutil" + node "github.com/ipfs/go-ipld-format" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/rlp" @@ -123,7 +125,7 @@ func FromBlockJSON(r io.Reader) (*EthHeader, []*EthTx, []*EthTxTrie, error) { // FromBlockAndReceipts takes a block and processes it // to return it a set of IPLD nodes for further processing. -func FromBlockAndReceipts(block *types.Block, receipts []*types.Receipt) (*EthHeader, []*EthHeader, []*EthTx, []*EthTxTrie, []*EthReceipt, []*EthRctTrie, [][]*EthLogTrie, [][]cid.Cid, []cid.Cid, error) { +func FromBlockAndReceipts(block *types.Block, receipts []*types.Receipt) (*EthHeader, []*EthHeader, []*EthTx, []*EthTxTrie, []*EthReceipt, []*EthRctTrie, [][]node.Node, [][]cid.Cid, []cid.Cid, error) { // Process the header headerNode, err := NewEthHeader(block.Header()) if err != nil { @@ -148,10 +150,10 @@ func FromBlockAndReceipts(block *types.Block, receipts []*types.Receipt) (*EthHe } // Process the receipts and logs - rctNodes, tctTrieNodes, logTrieNodes, logLeafNodeCIDs, rctLeafNodeCIDs, err := processReceiptsAndLogs(receipts, + rctNodes, tctTrieNodes, logTrieAndLogNodes, logLeafNodeCIDs, rctLeafNodeCIDs, err := processReceiptsAndLogs(receipts, block.Header().ReceiptHash[:]) - return headerNode, uncleNodes, txNodes, txTrieNodes, rctNodes, tctTrieNodes, logTrieNodes, logLeafNodeCIDs, rctLeafNodeCIDs, err + return headerNode, uncleNodes, txNodes, txTrieNodes, rctNodes, tctTrieNodes, logTrieAndLogNodes, logLeafNodeCIDs, rctLeafNodeCIDs, err } // processTransactions will take the found transactions in a parsed block body @@ -180,11 +182,11 @@ func processTransactions(txs []*types.Transaction, expectedTxRoot []byte) ([]*Et // processReceiptsAndLogs will take in receipts // to return IPLD node slices for eth-rct, eth-rct-trie, eth-log, eth-log-trie, eth-log-trie-CID, eth-rct-trie-CID -func processReceiptsAndLogs(rcts []*types.Receipt, expectedRctRoot []byte) ([]*EthReceipt, []*EthRctTrie, [][]*EthLogTrie, [][]cid.Cid, []cid.Cid, error) { +func processReceiptsAndLogs(rcts []*types.Receipt, expectedRctRoot []byte) ([]*EthReceipt, []*EthRctTrie, [][]node.Node, [][]cid.Cid, []cid.Cid, error) { // Pre allocating memory. ethRctNodes := make([]*EthReceipt, 0, len(rcts)) ethLogleafNodeCids := make([][]cid.Cid, 0, len(rcts)) - ethLogTrieNodes := make([][]*EthLogTrie, 0, len(rcts)) + ethLogTrieAndLogNodes := make([][]node.Node, 0, len(rcts)) receiptTrie := NewRctTrie() @@ -195,7 +197,7 @@ func processReceiptsAndLogs(rcts []*types.Receipt, expectedRctRoot []byte) ([]*E return nil, nil, nil, nil, nil, err } rct.LogRoot = logTrieHash - ethLogTrieNodes = append(ethLogTrieNodes, logTrieNodes) + ethLogTrieAndLogNodes = append(ethLogTrieAndLogNodes, logTrieNodes) ethLogleafNodeCids = append(ethLogleafNodeCids, leafNodeCids) ethRct, err := NewReceipt(rct) @@ -235,14 +237,14 @@ func processReceiptsAndLogs(rcts []*types.Receipt, expectedRctRoot []byte) ([]*E ethRctleafNodeCids[idx] = rln.Cid() } - return ethRctNodes, rctTrieNodes, ethLogTrieNodes, ethLogleafNodeCids, ethRctleafNodeCids, err + return ethRctNodes, rctTrieNodes, ethLogTrieAndLogNodes, ethLogleafNodeCids, ethRctleafNodeCids, err } const keccak256Length = 32 -func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, error) { +func processLogs(logs []*types.Log) ([]node.Node, []cid.Cid, common.Hash, error) { logTr := newLogTrie() - shortLogCIDs := make(map[uint64]cid.Cid, len(logs)) + shortLog := make(map[uint64]*EthLog, len(logs)) for idx, log := range logs { logRaw, err := rlp.EncodeToBytes(log) if err != nil { @@ -259,14 +261,14 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro if err != nil { return nil, nil, common.Hash{}, err } - shortLogCIDs[uint64(idx)] = logNode.Cid() + shortLog[uint64(idx)] = logNode } if err = logTr.Add(idx, logRaw); err != nil { return nil, nil, common.Hash{}, err } } - logTrieNodes, err := logTr.getNodes() + logTrieAndLogNodes, err := logTr.getNodes() if err != nil { return nil, nil, common.Hash{}, err } @@ -275,7 +277,6 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro if err != nil { return nil, nil, common.Hash{}, err } - leafNodeCids := make([]cid.Cid, len(logs)) for i, ln := range leafNodes { var idx uint @@ -289,11 +290,13 @@ func processLogs(logs []*types.Log) ([]*EthLogTrie, []cid.Cid, common.Hash, erro } // this is where we check which logs <= keccak256Length were actually internalized into parent branch node // and replace those that were with the cid.Cid for the raw log IPLD - for idx, lCID := range shortLogCIDs { - if !leafNodeCids[idx].Defined() { - leafNodeCids[idx] = lCID + for i, l := range shortLog { + if !leafNodeCids[i].Defined() { + leafNodeCids[i] = l.Cid() + // if the leaf node was internalized, we append an IPLD for log itself to the list of IPLDs we need to publish + logTrieAndLogNodes = append(logTrieAndLogNodes, l) } } - return logTrieNodes, leafNodeCids, common.BytesToHash(logTr.rootHash()), err + return logTrieAndLogNodes, leafNodeCids, common.BytesToHash(logTr.rootHash()), err } diff --git a/statediff/indexer/mainnet_tests/indexer_test.go b/statediff/indexer/mainnet_tests/indexer_test.go index 796e25b6d..16cc57800 100644 --- a/statediff/indexer/mainnet_tests/indexer_test.go +++ b/statediff/indexer/mainnet_tests/indexer_test.go @@ -33,8 +33,8 @@ import ( ) var ( - err error - db *postgres.DB + err error + db *postgres.DB chainConf = params.MainnetChainConfig ) @@ -86,7 +86,7 @@ func setup(t *testing.T, testBlock *types.Block, testReceipts types.Receipts) { testBlock.Difficulty()) require.NoError(t, err) - defer func(){ + defer func() { if err := tx.Close(err); err != nil { t.Fatal(err) } From a945cb17c0138f3e50f2cb7a8d2cf78ef990993a Mon Sep 17 00:00:00 2001 From: i-norden Date: Fri, 17 Dec 2021 17:35:36 -0600 Subject: [PATCH 4/4] fix rct unit tests --- statediff/indexer/indexer_test.go | 56 +++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 10 deletions(-) diff --git a/statediff/indexer/indexer_test.go b/statediff/indexer/indexer_test.go index 67645a12d..5c73e3de3 100644 --- a/statediff/indexer/indexer_test.go +++ b/statediff/indexer/indexer_test.go @@ -49,6 +49,7 @@ var ( mockBlock *types.Block headerCID, trx1CID, trx2CID, trx3CID, trx4CID, trx5CID cid.Cid rct1CID, rct2CID, rct3CID, rct4CID, rct5CID cid.Cid + rctLeaf1, rctLeaf2, rctLeaf3, rctLeaf4, rctLeaf5 []byte state1CID, state2CID, storageCID cid.Cid ) @@ -124,14 +125,49 @@ func init() { trx3CID, _ = ipld.RawdataToCid(ipld.MEthTx, tx3, multihash.KECCAK_256) trx4CID, _ = ipld.RawdataToCid(ipld.MEthTx, tx4, multihash.KECCAK_256) trx5CID, _ = ipld.RawdataToCid(ipld.MEthTx, tx5, multihash.KECCAK_256) - rct1CID, _ = ipld.RawdataToCid(ipld.MEthTxReceipt, rct1, multihash.KECCAK_256) - rct2CID, _ = ipld.RawdataToCid(ipld.MEthTxReceipt, rct2, multihash.KECCAK_256) - rct3CID, _ = ipld.RawdataToCid(ipld.MEthTxReceipt, rct3, multihash.KECCAK_256) - rct4CID, _ = ipld.RawdataToCid(ipld.MEthTxReceipt, rct4, multihash.KECCAK_256) - rct5CID, _ = ipld.RawdataToCid(ipld.MEthTxReceipt, rct5, multihash.KECCAK_256) + /* + rct1Node, _ := ipld.NewReceipt(rcts[0]) + rct2Node, _ := ipld.NewReceipt(rcts[1]) + rct3Node, _ := ipld.NewReceipt(rcts[2]) + rct4Node, _ := ipld.NewReceipt(rcts[3]) + rct5Node, _ := ipld.NewReceipt(rcts[4]) + */ state1CID, _ = ipld.RawdataToCid(ipld.MEthStateTrie, mocks.ContractLeafNode, multihash.KECCAK_256) state2CID, _ = ipld.RawdataToCid(ipld.MEthStateTrie, mocks.AccountLeafNode, multihash.KECCAK_256) storageCID, _ = ipld.RawdataToCid(ipld.MEthStorageTrie, mocks.StorageLeafNode, multihash.KECCAK_256) + + receiptTrie := ipld.NewRctTrie() + + receiptTrie.Add(0, rct1) + receiptTrie.Add(1, rct2) + receiptTrie.Add(2, rct3) + receiptTrie.Add(3, rct4) + receiptTrie.Add(4, rct5) + + rctLeafNodes, keys, _ := receiptTrie.GetLeafNodes() + + rctleafNodeCids := make([]cid.Cid, len(rctLeafNodes)) + orderedRctLeafNodes := make([][]byte, len(rctLeafNodes)) + for i, rln := range rctLeafNodes { + var idx uint + + r := bytes.NewReader(keys[i].TrieKey) + rlp.Decode(r, &idx) + rctleafNodeCids[idx] = rln.Cid() + orderedRctLeafNodes[idx] = rln.RawData() + } + + rct1CID = rctleafNodeCids[0] + rct2CID = rctleafNodeCids[1] + rct3CID = rctleafNodeCids[2] + rct4CID = rctleafNodeCids[3] + rct5CID = rctleafNodeCids[4] + + rctLeaf1 = orderedRctLeafNodes[0] + rctLeaf2 = orderedRctLeafNodes[1] + rctLeaf3 = orderedRctLeafNodes[2] + rctLeaf4 = orderedRctLeafNodes[3] + rctLeaf5 = orderedRctLeafNodes[4] } func setup(t *testing.T) { @@ -416,7 +452,7 @@ func TestPublishAndIndexer(t *testing.T) { switch c { case rct1CID.String(): - shared.ExpectEqual(t, data, rct1) + shared.ExpectEqual(t, data, rctLeaf1) var postStatus uint64 pgStr = `SELECT post_status FROM eth.receipt_cids WHERE leaf_cid = $1` err = db.Get(&postStatus, pgStr, c) @@ -425,7 +461,7 @@ func TestPublishAndIndexer(t *testing.T) { } shared.ExpectEqual(t, postStatus, mocks.ExpectedPostStatus) case rct2CID.String(): - shared.ExpectEqual(t, data, rct2) + shared.ExpectEqual(t, data, rctLeaf2) var postState string pgStr = `SELECT post_state FROM eth.receipt_cids WHERE leaf_cid = $1` err = db.Get(&postState, pgStr, c) @@ -434,7 +470,7 @@ func TestPublishAndIndexer(t *testing.T) { } shared.ExpectEqual(t, postState, mocks.ExpectedPostState1) case rct3CID.String(): - shared.ExpectEqual(t, data, rct3) + shared.ExpectEqual(t, data, rctLeaf3) var postState string pgStr = `SELECT post_state FROM eth.receipt_cids WHERE leaf_cid = $1` err = db.Get(&postState, pgStr, c) @@ -443,7 +479,7 @@ func TestPublishAndIndexer(t *testing.T) { } shared.ExpectEqual(t, postState, mocks.ExpectedPostState2) case rct4CID.String(): - shared.ExpectEqual(t, data, rct4) + shared.ExpectEqual(t, data, rctLeaf4) var postState string pgStr = `SELECT post_state FROM eth.receipt_cids WHERE leaf_cid = $1` err = db.Get(&postState, pgStr, c) @@ -452,7 +488,7 @@ func TestPublishAndIndexer(t *testing.T) { } shared.ExpectEqual(t, postState, mocks.ExpectedPostState3) case rct5CID.String(): - shared.ExpectEqual(t, data, rct5) + shared.ExpectEqual(t, data, rctLeaf5) var postState string pgStr = `SELECT post_state FROM eth.receipt_cids WHERE leaf_cid = $1` err = db.Get(&postState, pgStr, c)