aboutsummaryrefslogtreecommitdiff
path: root/doc/developer-notes.md
AgeCommit message (Collapse)Author
2020-09-19Remove unused LockAssertion structHennadii Stepanov
2020-08-29doc: Add best practice for annotating/asserting locksHennadii Stepanov
2020-07-09Merge #19258: doc: improve subtree check instructionsWladimir J. van der Laan
a4a3fc4cd2e6f53cdffcc2962fd152a4e40c7413 doc: improve subtree check instructions (Sjors Provoost) Pull request description: Running `git-subtree-check.sh` requires adding the subtree repository as a remote. I learned that several years ago and then forgot again. This PR also improves the error message if the subtree commit can't be found. ACKs for top commit: laanwj: ACK a4a3fc4cd2e6f53cdffcc2962fd152a4e40c7413 fanquake: ACK a4a3fc4cd2e6f53cdffcc2962fd152a4e40c7413 - this looks ok. Tree-SHA512: 959bd923726c172d17f9f97f8a56988bf2df5a94d3131e5152a66150b941394cee9e82fdc6b86e09c0ba91d123a496599f07ca454212168d8d301738394c12c8
2020-06-26doc: Mention Span in developer-notes.mdPieter Wuille
2020-06-12doc: improve subtree check instructionsSjors Provoost
2020-04-15[doc] Update thread information in developer docsJohn Newbery
2020-04-09Correct scripted-diff example linkYahia Chiheb
2020-03-19doc: Add internal interface conventions to developer notesRussell Yanofsky
2020-03-11Merge #18208: rpc: Change RPCExamples to bech32MarcoFalke
3e32499909ca8127baaa9b40ad113b25ee151bbd Change example addresses to bech32 (Yusuf Sahin HAMZA) Pull request description: This is a follow-up PR to #18197 that fixes RPCExamples. Fixes #18185. ACKs for top commit: MarcoFalke: ACK 3e32499909ca8127baaa9b40ad113b25ee151bbd jonatack: ACK 3e32499 Tree-SHA512: c7a6410ef8b6e169016c2c5eac3e6b9501caabd0e8a0871ec31e56bfc44589f056d3f5cb55b5a13bba36f6c15136c2352f883e30e4dcc0997ffd36b27f9173b9
2020-03-11Merge #17833: doc: Added running functional tests in valgrindMarcoFalke
155a11f897c7dfdc891587cc7ddd7c153cbc2a8f doc: Added running functional tests in valgrind (Elichai Turkel) Pull request description: Technically the notes only show an "example" of how to run valgrind with the suppression file, but now that https://github.com/bitcoin/bitcoin/pull/17633 is merged then maybe this can encourage more people to run also the functional tests in valgrind Top commit has no ACKs. Tree-SHA512: b8417249b720d0ed5e10b732648f2e07e8889bfc7aa7e94192d1c049b4b7837971678d30c535f273c227848f1290cf11e14369fd6c1924b734f2e47e2af41401
2020-03-01Change example addresses to bech32Yusuf Sahin HAMZA
2020-02-13rpc: update validateaddress RPCExamples to bech32Sebastian Falbesoner
also contains the following changes: - rpc: factor out example bech32 address for RPCExamples - doc: update developer notes wrt RPCExamples addresses (mention the EXAMPLE_ADDRESS constant as an example for an invalid bech32 address suitable for RPCExamples help documentation)
2020-01-28doc: Add crc32c subtree to developer notesWladimir J. van der Laan
2020-01-16Merge #17819: doc: developer notes guideline on RPCExamples addressesMarcoFalke
42ec4994892e67e3430f867af069aafcc2e08593 doc: developer notes guideline on RPCExamples addresses (Jon Atack) Pull request description: to make explicit the use of invalid addresses for user safety and to encourage the use of bech32 addresses by default. See https://github.com/bitcoin/bitcoin/pull/17578#discussion_r361752570 and https://github.com/bitcoin/bitcoin/pull/17578#discussion_r362564492. Fix a typo to appease the linter. ACKs for top commit: promag: ACK 42ec4994892e67e3430f867af069aafcc2e08593, no strong opinion as whether this belongs to developer notes or not but why not. fjahr: ACK 42ec499 michaelfolkson: ACK 42ec4994892e67e3430f867af069aafcc2e08593 Tree-SHA512: 64f90e227d256aa194c4fd48435440bdc233a51213dd4a6ac5b05d04263f729c6b4bb5f3afd3b87719b20cb1b159d5a9673d58a11b72823a4a6a16e8a26ae10e
2020-01-14Merge #17873: doc: Add to Doxygen documentation guidelinesfanquake
c902c4c0c6a26de8cb69a469503bf4a0bd73903c doc: Add to Doxygen documentation guidelines (Jon Layton) Pull request description: Completes the up-for-grabs PR #16948. Changes can be tested here: [doc/developer-notes.md](https://github.com/jonatack/bitcoin/blob/doxygen-developer-notes-improvements/doc/developer-notes.md) Co-authored-by: Jon Layton <me@jonl.io> ACKs for top commit: fanquake: ACK c902c4c0c6a26de8cb69a469503bf4a0bd73903c - quick read, checked the new links work. laanwj: ACK c902c4c0c6a26de8cb69a469503bf4a0bd73903c Tree-SHA512: 3b4cebba23061ad5243b2288c2006bf8527e74c689223825f96a44014875d15b2ab6ff54b8aa342ca657a14cf6ce3ab7d6e25bea5befd91162bc2645a74ddb7e
2020-01-05doc: Add to Doxygen documentation guidelinesJon Layton
and update the table of contents. Co-authored-by: Jon Layton <me@jonl.io>
2019-12-30doc: Added running functional tests in valgrindElichai Turkel
2019-12-28doc: developer notes guideline on RPCExamples addressesJon Atack
to make explicit the use of invalid addresses for user safety and to encourage the use of bech32 addresses by default. Fix a typo to appease the linter.
2019-12-15fix directory path for secp256k1 subtree in developer-noteshackerrdave
2019-12-13doc: update developer notes wrt unix epoch timeJon Atack
2019-11-23Merge #17539: doc: Update and improve Developer Notesfanquake
794fe91395c79f46a6d920bc08de5a0551b359a3 doc: Update and improve Developer Notes (Hennadii Stepanov) Pull request description: This PR: - removes outdated things, e.g., global pointer `pwalletMain` etc - adds "Sanitizers" to the TOC - makes filenames, `peer.dat` and `debug.log`, monospaced - specifies that _compile-time_ constant names are all uppercase - rewords using `explicit` with constructors ACKs for top commit: jamesob: lazy ACK https://github.com/bitcoin/bitcoin/pull/17539/commits/794fe91395c79f46a6d920bc08de5a0551b359a3 practicalswift: ACK 794fe91395c79f46a6d920bc08de5a0551b359a3 -- nice improvements! Tree-SHA512: 2c5f035b1627f5fac8dc2453199d9e46bd101f86771de567cd95698de3c61cc459444ec1a68710e1d280195e1e40b42d9f40906297d12f12bf37749eca58297d
2019-11-20doc: Update and improve Developer NotesHennadii Stepanov
2019-11-19doc: Add some better examples for scripted diffWladimir J. van der Laan
The current example isn't too great, for example it uses `find` instead of `git ls-files`. Add a subsection with suggestions and examples.
2019-11-05Merge #17044: init: Remove auto-import of `bootstrap.dat` and associated codeWladimir J. van der Laan
104f7de5934f13b837fcf21f6d6b2559799eabe2 remove old bootstrap relevant code (tryphe) Pull request description: This picks up #15954 I fixed the code and added at a functional test utilizing the scripts in `contrib/linearize` as suggested by @MarcoFalke . ACKs for top commit: laanwj: ACK 104f7de5934f13b837fcf21f6d6b2559799eabe2 Tree-SHA512: acac9f285f9785fcbc3afc78118461e45bec2962f90ab90e9f82f3ad28adc90a44f0443b712458ccf486e46d891eb8a67f53e7bee5fa6d89e4387814fe03f117
2019-11-05remove old bootstrap relevant codetryphe
- only load blockfiles when we have paths - add release notes for modified bootstrap functionality - amend documentation on ThreadImport
2019-11-04doc: Fix some misspellingsrandymcmillan
2019-10-30doc: Add developer note on c_str()Wladimir J. van der Laan
Add a note when to use and when not to use `c_str()`.
2019-10-14doc: Add switch on enum exampleHennadii Stepanov
2019-09-19[doc] update brew instruction for doxygenSjors Provoost
2019-08-29Merge #16461: doc: Tidy up shadowing sectionfanquake
9452802480bd154e23771230bbdfebde1dbaa941 doc: Tidy up shadowing section (João Barbosa) Pull request description: Removes the example because it violates the code format. ACKs for top commit: MarcoFalke: unsigned ACK 9452802480bd154e23771230bbdfebde1dbaa941 ryanofsky: ACK 9452802480bd154e23771230bbdfebde1dbaa941 fanquake: ACK 9452802480bd154e23771230bbdfebde1dbaa941 - Thanks for following up. Tree-SHA512: 1fc31355d368225713298da7803e39e99014fbfcd229f2d3b56c082de95ab2965e51c80b172a5abce4646c53f845fa62a6d94d5df714e7835cac07a8ec7d5da7
2019-08-28doc: Tidy up shadowing sectionJoão Barbosa
2019-08-03doc: Fix grammar and punctuation in developer notesKristian Kramer
This pull request is regarding minor grammar and punctuation errors in the developer notes. There were no modifications to the existing code, only alterations to fix the grammar and punctuation in the text. Update developer-notes.md Update developer-notes.md Revert "Update developer-notes.md" This reverts commit dfeb0bacb054ed24766f8af7bae0c0166b0cb4cb.
2019-07-09scripted-diff: rename CBasicKeyStore to FillableSigningProviderAndrew Chow
-BEGIN VERIFY SCRIPT- git grep -l "CBasicKeyStore" | xargs sed -i -e 's/CBasicKeyStore/FillableSigningProvider/g' -END VERIFY SCRIPT-
2019-06-20doc: remove orphaned header in developer notesJon Atack
The "Git and GitHub tips" section was moved from doc/developer-notes.md to doc/productivity.md in 5b76c31, but the header link to that long-gone section in the developer notes remains and needs to go. So long, Git and GitHub tips, we barely knew ya.
2019-06-11Fix spelling errors identified by codespell 1.15.0Ben Woosley
After this commit, the only remaining output is: $ test/lint/lint-spelling.sh src/test/base32_tests.cpp:14: fo ==> of, for src/test/base64_tests.cpp:14: fo ==> of, for ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/lint-spelling.ignore-words.txt Note: * I ignore several valid alternative spellings * homogenous is present in tinyformat, hence should be addressed upstream * process' is correct only if there are plural processes
2019-05-01doc: Explain how to pass in non-fundamental types into functionsMarcoFalke
2019-04-25Align code example with clang-formatHennadii Stepanov
2019-03-22[docs] remove reference to signrawtransaction in the developer docs.John Newbery
2019-03-02docs: Update Transifex linksmarcuswin
2019-02-18Merge #15348: doc: Add separate productivity notes documentMarcoFalke
5b76c314d6 doc: Add separate productivity notes document (Carl Dong) Pull request description: Many developers have their own tools and tricks to be more productive during their cycles, so let's document the best ones so that everyone can benefit from them. Tree-SHA512: b4989e7a815e972a9a646f448fb6c08bd896b4bce77fd7fb22a71a7602971d4cbe34f88183f503f5b851d002784d9e91b87df5348c661eeb9cefa69c52e0de2b
2019-02-05Merge #14519: tests: add utility to easily profile node performance with perfMarcoFalke
13782b8ba8 docs: add perf section to developer docs (James O'Beirne) 58180b5fd4 tests: add utility to easily profile node performance with perf (James O'Beirne) Pull request description: Adds a context manager to easily (and selectively) profile node performance during functional test execution using `perf`. While writing some tests, I encountered some odd bitcoind slowness. I wrote up a utility (`TestNode.profile_with_perf`) that generates performance diagnostics for a node by running `perf` during the execution of a particular region of test code. `perf` usage is detailed in the excellent (and sadly unmerged) https://github.com/bitcoin/bitcoin/pull/12649; all due props to @eklitzke. ### Example ```python with node.profile_with_perf("large-msgs"): for i in range(200): node.p2p.send_message(some_large_msg) node.p2p.sync_with_ping() ``` This generates a perf data file in the test node's datadir (`/tmp/testtxmpod0y/node0/node-0-TestName-large-msgs.perf.data`). Running `perf report` generates nice output about where the node spent most of its time while running that part of the test: ```bash $ perf report -i /tmp/testtxmpod0y/node0/node-0-TestName-large-msgs.perf.data --stdio \ | c++filt \ | less # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 135 of event 'cycles:pp' # Event count (approx.): 1458205679493582 # # Children Self Command Shared Object Symbol # ........ ........ ............... ................... ........................................................................................................................................................................................................................................................................ # 70.14% 0.00% bitcoin-net bitcoind [.] CNode::ReceiveMsgBytes(char const*, unsigned int, bool&) | ---CNode::ReceiveMsgBytes(char const*, unsigned int, bool&) 70.14% 0.00% bitcoin-net bitcoind [.] CNetMessage::readData(char const*, unsigned int) | ---CNetMessage::readData(char const*, unsigned int) CNode::ReceiveMsgBytes(char const*, unsigned int, bool&) 35.52% 0.00% bitcoin-net bitcoind [.] std::vector<char, zero_after_free_allocator<char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<char*, std::vector<char, zero_after_free_allocator<char> > >, unsigned long, char const&) | ---std::vector<char, zero_after_free_allocator<char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<char*, std::vector<char, zero_after_free_allocator<char> > >, unsigned long, char const&) CNetMessage::readData(char const*, unsigned int) CNode::ReceiveMsgBytes(char const*, unsigned int, bool&) ... ``` Tree-SHA512: 9ac4ceaa88818d5eca00994e8e3c8ad42ae019550d6583972a0a4f7b0c4f61032e3d0c476b4ae58756bc5eb8f8015a19a7fc26c095bd588f31d49a37ed0c6b3e
2019-02-05doc: Add separate productivity notes documentCarl Dong
Many developers have their own tools and tricks to be more productive during their cycles, so let's document the best ones so that everyone can benefit from them.
2019-01-24[doc] add notes on release notesJohn Newbery
2019-01-22docs: add perf section to developer docsJames O'Beirne
2019-01-04Merge #14832: docs: Add more Doxygen information to Developer NotesMarcoFalke
a62e667296 docs: Add more Doxygen information to Developer Notes (Jon Layton) Pull request description: Update information about Doxygen in `doc/developer-notes.md`. Alternatively, this could have its own file (like `doc/web-documentation.md`), since there are installation steps included. For example, I had to run: ``` brew install doxygen graphviz ``` on MacOS, otherwise failures occurred. This information could also be linked to the `doc/release-process.md`. Tree-SHA512: 5d77ee83e1b96fde036482b502f676a90a56f3f667753545a7cfba5c2e3b825644bb4cf0f8a84b7f9ba92fa5f2e1cd6ef1e27a94277f43d012355df741f7dd2f
2018-12-06Merge #14882: [doc] developer-notes.md: point out that UniValue deviates ↵MarcoFalke
from upstream a67d71311d [doc] developer-notes.md: point out that UniValue deviates from upstream (Sjors Provoost) Pull request description: While debugging an issue I was somewhat surprised to [learn](https://github.com/bitcoin/bitcoin/pull/14164#issuecomment-419752678) that we've moved `src/univalue` from https://github.com/jgarzik/univalue to https://github.com/bitcoin-core/univalue, that these repos are both maintained and they're different. The first mention of using the bitcoin-core repo is from late 2015 in #7157. I didn't check when the last common ancestor commit is. I couldn't find documentation as to why (these things just happen in open source of course), but at minimum we should make this more clear. There's also the following line in `config.ac` that I'm not sure what to do with: ``` AC_INIT([univalue], [1.0.3], [http://github.com/jgarzik/univalue/]) ``` Tree-SHA512: e58105677b5ebe0005772282da4a805fee7dfccacfb1b2686a874517bf46072d1481181f8a8865d25526f6ed9e5fcd55d8d49906bf27cd0f5aefe4f258aa4d63
2018-12-06[doc] developer-notes.md: point out that UniValue deviates from upstreamSjors Provoost
2018-12-02Scripts and tools & Docs: Used #!/usr/bin/env bash instead of obsolete ↵vim88
#!/bin/bash, added linting for .sh files shebang and updated the Developer Notes.
2018-11-29docs: Add more Doxygen information to Developer NotesJon Layton
2018-11-15Improve scripted-diff developer docsCarl Dong
Instead of verifying all scripted-diffs, provide an example that only verifies all scripted-diffs in commits since `origin/master.