Comments (6)
➤ lars commented:
We also have to do block header validation. Most of it is implied (i.e. checked) by inserting into the respective block header db. But adjacent parent verification isn’t. Currently it is done by recursively checking that all dependencies are available.
For an iterative approach one would have to ensure that blocks are added in the right order, so that all dependencies are added before the block itself.
I think there are two options:
- Use the current recursive approach and just switch off/leave off mining (and possibly cut processing).
- Use the (currently switched off) single-chain sync session to get all block headers (without parent validation and pact validation) and do a second path over all block in the db to run pact validation and adjacent parent validation.
The second is a little more tricky and possibly not worth it, because compared to a final solution, it’s just something like 50% feature wise but 90% in terms of dev costs, I guess.
With the first option there is a chance that we need some memory for storing the open tasks in the task queues during the recursive decent. There may even be some stack-build up (not sure, I would have to check the code). Still I propose to try that first and see how it performs.
from chainweb-node.
➤ lars commented:
So, a good way to start would be to run Chainweb.Chainweb
with mining and cut-processing disabled and switch both components on only when we synced with the head of Chainweb.
I am not sure how much overhead cut processing causes. So we may first try to just leave the miner disabled, which is easier to do.
from chainweb-node.
➤ lars commented:
For turning off cut processing would would have to add a flag to the cut-Db queue processor to just drop new incoming cuts. However, we would still need to query a "starting" cut to start with. So it's most likely the easiest to leave cut-processing on.
from chainweb-node.
➤ Colin Woodbury commented:
This PR #92 addresses this task. It may already work as intended and need no further tweaks. I still need to test it a bit more.
from chainweb-node.
➤ [email protected] commented:
Efficiency has been addressed; priority has changed now
from chainweb-node.
➤ [email protected] commented:
Moved from v1 to v2
from chainweb-node.
Related Issues (20)
- Broken link on main github page HOT 1
- New rocksdb-haskell-kadena dependency does not build on macOS
- Add nix-build to CI for chainweb-node HOT 2
- Link to the whitepaper in the repository description goes to "Page Not Found" HOT 2
- The program won't start, what should I do? HOT 3
- fix server startup in `Chainweb.Chainweb` (make sure exception in server are propagated).
- On-chain error reporting should be restored HOT 16
- GNU/Linux Debian 11 - 5.19.0-0.deb11.2-amd64 - build error - cabal: Error parsing project freeze file HOT 4
- Incorrect Whitepaper link in "About" Section HOT 1
- Transactions often "idle" for several blocks before being included HOT 3
- Gas Errors Are Unhelpful HOT 5
- DoS Attack Potential Using gasLimit HOT 6
- Mempool Transaction Propagation HOT 13
- Trying to build on Mac M1 fails with "Could not resolve dependencies" HOT 3
- How to obtain the ubuntu binary? HOT 4
- Node unable to reach bootstrap peers HOT 3
- nix-build no longer works as of latest release 2.19/2.19.1 HOT 5
- cabal install fails as of 2.19/2.19.1 HOT 8
- chainweb-node crashes from time to time HOT 2
- Question about Namespace contracts HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chainweb-node.