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.
[x] Bugfix
[ ] New feature or enhancement
[ ] Others
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.
[ ] I have read the CLA and signed by comment I have read the CLA Document and I hereby sign the CLA in first time contribute
[ ] Lint and unit tests pass locally with my changes ($ make test)
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules
Related issues
Please leave the issue numbers or links related to this PR here.
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...
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).
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)) atTypes 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.
I have read the CLA Document and I hereby sign the CLA
in first time contribute$ make test
)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...