-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Goals for upcoming May Utreexo Workshop #79
Comments
Cool - generally agree; some comments:
I also think that mempool can come later, after we get block proofs & validation on both sides. There are some optimizations & tricky parts about dealing with mempool that we can leave till later. Blocks-only mode is a thing, and gives plenty of functionality for proving the concept.
(maybe not CTxOut but something like that). It can return false on an error. Once we have ValidateBlock, try changing btcd code internally to use that ValidateBlock() function, while still keeping everything in place (levelDB utxo set). At that point, everything should still work. Maybe this seems a bit useless, but I think it's helpful to have; we can be sure that the shuffling of code hasn't broken things, so that when we drop in utreexo we can see if things still work. Then pull out levelDB and have utreexo be the one giving the CTxOuts to the ValidateBlock function. |
Cool. So just need to do some network stuff and make CSN validate. Could you add them to projects? |
Everything is refactored. While reviewing code to do the TODOs mentioned in mit-dci#79, I noticed some things to clean up. This refactor is needed for the goals mentioned in mit-dci#79 as it separates 1. Bridge node and CSN (Compact State Node) 2. Chain resume functionality from both bridgenode and csn (placed in chain.go and chainio.go in both bridgenode/ and csn/ Changed things 1. All functionality for store and restore to disk is now placed in chain.go and chainio.go in both bridgenode/ and csn/ 2. Various bugs involving offsetfile.go was fixed. To add new blocks from blk*.dat files, all the user has to do is delete the offsetdata directory and re-run genproofs to rebuild the offset index. Both genproofs and ibdsim will resume where they left off and sync the new blocks. 3. main.go file in directory cmd/ is the main file now. 4. Separated all ttl related things to its own directory. 5. Removed all names related or implying a simulator. 6. Various comment cleanups
Everything is refactored. While reviewing code to do the TODOs mentioned in mit-dci#79, I noticed some things to clean up. This refactor is needed for the goals mentioned in mit-dci#79 as it separates 1. Bridge node and CSN (Compact State Node) 2. Chain resume functionality from both bridgenode and csn (placed in chain.go and chainio.go in both bridgenode/ and csn/ Changed things 1. All functionality for store and restore to disk is now placed in chain.go and chainio.go in both bridgenode/ and csn/ 2. Various bugs involving offsetfile.go was fixed. To add new blocks from blk*.dat files, all the user has to do is delete the offsetdata directory and re-run genproofs to rebuild the offset index. Both genproofs and ibdsim will resume where they left off and sync the new blocks. 3. main.go file in directory cmd/ is the main file now. Also removed some unused variables. 4. Separated all ttl related things to its own directory. 5. Removed all names related or implying a simulator. 6. Various comment cleanups
bc-2.jp now says "TBD" where the date used to be, so i think it may not be in May? |
Yeah.. it got delayed because of the virus. I guess we have more time now? heh |
prove: New GetProofSubset
This is a list of goals for the upcoming May Utreexo workshop. Having a Bridge Node and a well documented code would help with newcomers to the project.
I think the core libraries are stable enough to go make a bridge node now. I thought of some things the bridge node should do. Please correct/add to the list as necessary.
Nodes
1. Make Standalone Bridge Node
Network
A. Query the default bootstrapping Classic Bitcoin nodes and receive blocks received from them.
B. Serve Classic Bitcoin Nodes as well as Utreexo Compact State Nodes as stated in the paper.
C. Contain a mempool.
Storage
A. Index the locations of a block in a blk*.dat file. We have three options:
Open to thoughts here.
2. Make Standalone Utreexo Compact State Node
Network
A. Set up Bridge Node(s) for Utreexo Compact State Nodes to query.
Make a Bridge Node with MIT's resources?
B. Set up Utreexo Compact State Node(s)
Should be easy.
C. Make it able to flush caches.
3. Utreexo API
A list of calls to provide so anyone can fork and start using the library. Would also help in seeing how Utreexo could fit into Bitcoin Core. This is an attempt to list what there should be. Please suggest additions/subtractions. Does fit into the Bridge Node and the Utreexo Compact Node construction
Documentation
Make godoc like btcd.
1. README.md and doc.go for every directory
There are old comments that need cleanup and there are also functions with outdated/no comments.
2. Clean up old comments from all directories
A. cmd/* needs cleanup
B. utreexo/* needs cleanup
3. A medium article or something similar would be nice.
The text was updated successfully, but these errors were encountered: