-
Notifications
You must be signed in to change notification settings - Fork 47
Open
Description
- I have prepared a list of questions related to the current architecture of Bitcoin core.
- I used this documentation for reference in designing questions.
- The questions are arranged in chronological order based on where they come in the documentation.
- For now, I am putting the list of questions as an issue so that we can select the questions before implementing them in the final documentation.
List of Questions:
- Default questions (Question given as examples in the beginning):
- How does the node find other peers on the network?
- How is a new block or transaction received and validated?
- How is a transaction created and broadcasted?
- Basics:
- Describe the primary purposes of a Bitcoin node.
- Why is it preferred to do transactions on your own node?
- Explain nodes and wallets.
- Try using bitcoind, bitcoin-cli, bitcoin-qt
- Protocol - P2P:
- How does node find other peers?
- Explain the two ways in which a node can be connected with its peers.
- Concurrency Model:
- Script Verification
- Explain how the number of threads used for script verification is decided. Explain the use of -par argument in it.
- Understand StartScriptCheckWorkerThreads(script_threads) function and try understanding how [PR #18710](Add local thread pool to CCheckQueue bitcoin/bitcoin#18710) improved it.
- Send And Receive Messages To And From Peers
- Please explain how sending and receiving messages takes place multiple times, though it is wrapped by TraceThread(), which ensures unique execution.
- Script Verification
- Notification Mechanism:
- How to register a class to receive messages from the g_signals publisher?
- Does CMainSignals implement CValidationInterface? If now, then why do they have the same names for the methods?
- What is g_signals? Explain its structure and the process it employs to notify subscribers of the signal.
I would much appreciate feedback on this question to help me improve them.
Metadata
Metadata
Assignees
Labels
No labels