add notes
This commit is contained in:
parent
802cea13e4
commit
53b9d2224f
49
notes.md
Normal file
49
notes.md
Normal file
@ -0,0 +1,49 @@
|
||||
# bitcoind
|
||||
|
||||
## Important Source Files
|
||||
|
||||
- **bitcoind.cpp** - the main entry point, `main()` resides here. This calls
|
||||
`Appinit()`.
|
||||
|
||||
- `AppInit()` also resides here, it eventually ends up calling AppInit2()
|
||||
which is the most important entry point for what we're doing. AppInit2()
|
||||
will be the handler of `$ bitcoind -server -daemon`.
|
||||
|
||||
- **init.cpp** - `AppInit2()` resides here - this functions ends up calling
|
||||
`StartNode()` which spawns all of the threads for network activity (accepts
|
||||
the main `threadGroup`).
|
||||
|
||||
- **net.cpp** - `StartNode()` resides here - starts all network threads.
|
||||
|
||||
- **main.cpp** - misnamed file which handles all packet handling, framing and
|
||||
parsing.
|
||||
|
||||
## Plan of Action
|
||||
|
||||
### First Pass
|
||||
|
||||
- Successfully link to bitcoind from our, currently barebones, c++ binding.
|
||||
- Expose one function from the c++ binding which essentially starts all the
|
||||
net.cpp threads and starts downloading the block chain and connecting to
|
||||
peers.
|
||||
|
||||
### Second Pass
|
||||
|
||||
- Start exposing more functions - a fully function bitcoin library
|
||||
- Reconcile the issues that may arise making certain calls async (libuv thread pool vs. bitcoind threads?)
|
||||
|
||||
## Hurdles
|
||||
|
||||
- If we expect people to install and compile this, on one core on an i5,
|
||||
bitcoind takes roughly 30 minutes to compile.
|
||||
|
||||
``` bash
|
||||
git clean -xdf
|
||||
git checkout v0.9.0
|
||||
date | tee compile_time; ./autogen.sh
|
||||
./configure --with-incompatible-bdb
|
||||
make; date | tee -a compile_time
|
||||
cat compile_time
|
||||
Wed Aug 13 14:38:14 CDT 2014
|
||||
Wed Aug 13 15:07:49 CDT 2014
|
||||
```
|
||||
Loading…
Reference in New Issue
Block a user