Bitcoin full node and query server

Apr 19, 2024

View in context in the libbitcoin Slack #general mirror.

D
David Chocholatý13:24
Hi everyone👋, nice to be here. I'm David, and I'm joining via the Summer of Bitcoin. Just introduce myself briefly. I'm a student in the master's degree programme at FIT Brno University of Technology. I have experience contributing to open-source Tone Mapping Studio project for about three years and Mixxx organization through the Google Summer of Code in 2022. I'm interested in the project SQLite Database for libbitcoin. I like the idea of the performance improvement for the less equipped computers (probably the same as mine 😄). @SoB mentors: Please, can I ask you a small question? I have done the first two parts of the Competency Test in the project idea published on the Summer of Bitcoin website. I have a single-page document with the problems and ideas I got during the libbitcoin database installation and running a node. Should I post the document here or send it only to mentors? Thank you for your answer in advance.
👋 2🙌 1👋🏻 1
19 replies · neillm, jungly, David Chocholatý, evoskuil · last May 01, 2024
neillm14:21
Welcome, glad you made it! Posting a link to a github gist or something seems appropriate for notes to review. cc: @jungly for the SQLite DB areas.
jungly14:35
Hi @David Chocholatý - Thanks for taking the time to run the node. Feel free to share your experience here or in a gist as Neill recommended.
(edited)
D
David Chocholatý18:28
Thank you both for welcoming me. Okay, I have converted the original LaTeX document into the GitHub gist, which is on the link: GitHub gist If there is something unclear or should add or change anything, I can update the gist of course (on the Summer of Bitcoin website is mentioned, that only problems that occurred should be written).
(edited)
evoskuil18:42
FYI the recommended build is static, prefix directory (non-sudo), and build boost. This is because the linker tends to pick up shared dependencies despite configuration and boost installations vary widely and are often incompatible. Also, you've got version3, which is the release build but very dated. The SQL project can only apply to version4 (/master). There is no current server build for master, we are working from libbitcoin-node (libbitcoin-server builds on that). There is a similar install.sh. That build has system, network, and database dependencies.
(edited)
D
David Chocholatý18:58
Thank you very much for the clarification and explanation. I have chosen version 3 because it was explicitly required in the project idea (for both, database and node too) but of course, for the project part I would prefer the master branch version.
(edited)
summerofbitcoin.org
A C++ Bitcoin toolkit library for asynchronous apps.
D
David Chocholatý19:29
Please, can I ask you a small question just for clarification? In the Competency Test part of the project idea, is written for the "stretch goal" that the repository with SQLite program in C++ can choose arbitrary table schema. Does it mean that an independent schema from the project or Bitcoin in general can be chosen too? For example the common schemas like online book store or something like that.
jungly19:31
That's great that you got everything running @David Chocholatý. Yes, any table will do from any schema. It's just an exercise to have a SQLite table created with a couple of read and write queries executed on it
👍 1✅ 1
D
David Chocholatý19:37
Thank you. Great, I will take a look at the SQLite part and try to send you the repository ASAP.
D
David Chocholatý13:24
Hi, I have done the stretch goal SQLite task. It can be found in the public repository: https://github.com/davidchocholaty/libbitcoin-sqlite-task The table scheme is in the README file. I have tried to write some short descriptions into the README file too. Of course, I can explain other things here. I would like to ask for your feedback on this. Thank you in advance.
jungly13:32
Looks good. I was able to build and run the application. I liked the extensive comments you left. Nice work.
👍 1
D
David Chocholatý14:18
Great, thank you very much. It pleases me. Now I'm working on the proposal part. I will remain available on Slack. I want to ask you too if some tasks have to be done and are good for the libbitcoin newbies. I ask because there are no "good first issues" and I would like to dive into the toolkit a little bit deeper.
jungly14:20
TBH, the sqlite database is something we are looking forward to a lot. Other than that, @evoskuil will most definitely have suggestions for other first issues.
D
David Chocholatý14:26
Ok, thank you. So I will rather focus on the proposal and SoB now up by 30 April to increase the chances of creating a SQLite database.
evoskuil14:33
The document that I posted is the only work done on it so far. I would start by building a schema that maps to the existing database and then writing the archive queries in SQL against that schema. Note that tables are designed for efficient access during validation and confirmation stages, so any deviation should be considered carefully. Also, the store is fully read/write concurrent and tables are all append-only. The two height indexes (candidate/confirmed) can however be popped (become smaller).
(edited)
👍 1
evoskuil14:35
The final outcome should be a drop-in replacement for the store object and query class.
👍 1
D
David Chocholatý14:52
Thank you for tips and explanations. Sounds good to me. I will try to reflect this in the proposal and cover parts of the document.
👍🏻 1
D
David Chocholatý07:38
Hi all, I'm also writing in this discussion thread. I'm so sorry, but unfortunately, because of the time pressure during my studies, I could not complete the SoB assignment task on the minimal required number of points which is required for a successful application too. So I won't be able to work on the project via the Summer of Bitcoin programme. However, if @Tanay Raikhere has fulfilled this requirement, I wish him the best of luck in his successful selection to work on this project. Despite this failure of mine, I would like to stay in touch with this project.
(edited)
evoskuil06:43
Please do!!
(edited)
👍 1
D
David Chocholatý06:48
Thank you @evoskuil. I will. Just for your information, I will be short of time by about three weeks due to the university exam period. However, I should have time after that period and am open to contributing.
🔥 1