kaiachain / kaia

GNU Lesser General Public License v3.0
21 stars 27 forks source link

Preload staking info only at startup #48

Closed hyeonLewis closed 4 months ago

hyeonLewis commented 4 months ago

Proposed changes

This PR is similar with #46 except that it only regenerates and preloads staking info at node start up. The existing APIs will bubble up if user requests info at stateless block (or blocks).

How it differs from #46: #46 This PR
Startup regen regen
APIs regen bubble up missing state error ("missing trie node")
APIs example ``` // No snapshot cache > kaia.getCommittee("20") Error: missing trie node d9c413d220797a666c786380e0f269b1f228304601cdc492c66eb40bdc2efc28 (path ) at web3.js:6812:9(39) at send (web3.js:5223:62(29)) at :1:18(3) // No snapshot cache > kaia.getBlockWithConsensusInfo kaia.getBlockWithConsensusInfo kaia.getBlockWithConsensusInfoRange > istanbul.getValidators(30) Error: missing trie node d9c413d220797a666c786380e0f269b1f228304601cdc492c66eb40bdc2efc28 (path ) at web3.js:6812:9(39) at send (web3.js:5223:62(29)) at :1:23(3) > kaia.getRewards("30") Error: missing trie node 25b62b34e5d1f2b5ccc2349ff7da9a7f73abe7b154c6153ff3aa7459ba270800 (path ) at web3.js:6812:9(39) at send (web3.js:5223:62(29)) at :1:16(3) > kaia.getStakingInfo("30") Error: missing trie node 25b62b34e5d1f2b5ccc2349ff7da9a7f73abe7b154c6153ff3aa7459ba270800 (path ) at web3.js:6812:9(39) at send (web3.js:5223:62(29)) at :1:20(3) ```

Types of changes

Please put an x in the boxes related to your change.

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

Related issues

Further comments

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...