-
Notifications
You must be signed in to change notification settings - Fork 36.6k
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
Add -keepnode which attempts to -addnode and keep a connection open #454
Conversation
ACK |
Updated version, now with less redundant code and less potential to segfault in very rare cases. |
After discussion on #bitcoin-dev, no more exponential backoff and retry connections every 2 minutes. |
Is there a good reason for this to be a separate switch? I think I'd prefer if we just changed the -addnode behavior to stay connected. |
not really, I just always prefer to not change existing behavior, but if there is a consensus that -addnode in its current for is unnecessary, thats fine. |
-addnode removed, s/keepnode/addnode/ |
This needs rebasing again. Not trivial this time. :( |
Rebased, and it was trivial. |
No, it isn't that trivial. This still does not build. |
OK, theres an actually useful version. |
The cleanup really doesn't belong here, but it looks fine to me... ACK on 10ba0a3 (Minor cleanup...) |
Sorry, I wrote that patch while writing keepnode and its way too small to warrant its own pull request, so I just left it in here... |
This doesn't work for me. How I tested: 3 testnet-in-a-box nodes, a/b/c listening on ports 8900,8901,8902 b -connects to a Test: start them all up, verify c's connections. I think the culprit is: ... which I believe is 20 minutes, not two. |
No, 120,000 is correct (http://www.wolframalpha.com/input/?i=2+minutes+to+milliseconds), also it worked fine for me... |
ACK-- problem with my test is elsewhere in the networking code, I can't make more than one connection from daemons running on my machine on different ports. |
1773613 Fix two Omni Core related build warnings (dexX7)
[Backport] bitcoin#8613: LevelDB 1.19
84973d3 Merge bitcoin#454: Remove residual parts from the schnorr expirement. 5e95bf2 Remove residual parts from the schnorr expirement. cbc20b8 Merge bitcoin#452: Minor optimizations to _scalar_inverse to save 4M 4cc8f52 Merge bitcoin#437: Unroll secp256k1_fe_(get|set)_b32 to make them much faster. 465159c Further shorten the addition chain for scalar inversion. a2b6b19 Fix benchmark print_number infinite loop. 8b7680a Unroll secp256k1_fe_(get|set)_b32 for 10x26. aa84990 Unroll secp256k1_fe_(get|set)_b32 for 5x52. cf12fa1 Minor optimizations to _scalar_inverse to save 4M 1199492 Merge bitcoin#408: Add `secp256k1_ec_pubkey_negate` and `secp256k1_ec_privkey_negate` 6af0871 Merge bitcoin#441: secp256k1_context_randomize: document. ab31a52 Merge bitcoin#444: test: Use checked_alloc eda5c1a Merge bitcoin#449: Remove executable bit from secp256k1.c 51b77ae Remove executable bit from secp256k1.c 5eb030c test: Use checked_alloc 72d952c FIXUP: Missing "is" 70ff29b secp256k1_context_randomize: document. 9d560f9 Merge bitcoin#428: Exhaustive recovery 8e48aa6 Add `secp256k1_ec_pubkey_negate` and `secp256k1_ec_privkey_negate` 2cee5fd exhaustive tests: add recovery module 678b0e5 exhaustive tests: remove erroneous comment from ecdsa_sig_sign 03ff8c2 group_impl.h: remove unused `secp256k1_ge_set_infinity` function a724d72 configure: add --enable-coverage to set options for coverage analysis b595163 recovery: add tests to cover API misusage 6f8ae2f ecdh: test NULL-checking of arguments 25e3cfb ecdsa_impl: replace scalar if-checks with VERIFY_CHECKs in ecdsa_sig_sign git-subtree-dir: src/secp256k1 git-subtree-split: 84973d3
1e6f1f5 Merge bitcoin#529: fix tests.c in the count == 0 case 95e99f1 fix tests.c in the count == 0 case 452d8e4 Merge bitcoin#523: scratch: add stack frame support 6fe5043 scratch: add stack frame support 9bc2e26 Merge bitcoin#522: parameterize ecmult_const over input size 7c1b91b parameterize ecmult_const over input size dbc3ddd Merge bitcoin#513: Increase sparsity of pippenger fixed window naf representation fb9271d Merge bitcoin#510: add a couple missing `const`s to ecmult_pippenger_wnaf cd5f602 Merge bitcoin#515: Fix typo 09146ae Merge bitcoin#512: secp256k1_ec_privkey_negate - fix documentation ec0a7b3 Don't touch leading zeros in wnaf_fixed. 9e36d1b Fix bug in wnaf_fixed where the wnaf array is not completely zeroed when given a 0 scalar. 96f68a0 Don't invert scalar in wnaf_fixed when it is even because a caller might intentionally give a scalar with many leading zeros. 9b7c47a Fix typo 6dbb007 Increase sparsity of pippenger fixed window naf representation 1646ace secp256k1_ec_privkey_negate - fix documentation 9b3ff03 add a couple missing `const`s to ecmult_pippenger_wnaf cd329db Merge bitcoin#460: [build] Update ax_jni_include_dir.m4 macro 7f9c1a1 Merge bitcoin#498: tests: Avoid calling fclose(...) with an invalid argument f99aa8d Merge bitcoin#499: tests: Make sure we get the requested number of bytes from /dev/urandom b549d3d Merge bitcoin#472: [build] Set --enable-jni to no by default instead of auto. d333521 Merge bitcoin#494: Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS 2ef8ea5 Merge bitcoin#495: Add bench_ecmult to .gitignore 82a96e4 tests: Make sure we get the requested number of bytes from /dev/urandom 5aae5b5 Avoid calling fclose(...) with an invalid argument cb32940 Add bench_ecmult to .gitignore 31abd3a Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS c95f6f1 Merge bitcoin#487: fix tests typo, s/changed/unchanged fb46c83 Merge bitcoin#463: Reduce usage of hardcoded size constants 02f5001 Merge bitcoin#490: Disambiguate bench functions and types 1f46d60 Disambiguate bench functions and types f54c6c5 Merge bitcoin#480: Enable benchmark building by default c77fc08 Merge bitcoin#486: Add pippenger_wnaf for multi-multiplication d2f9c6b Use more precise pippenger bucket windows 4c950bb Save some additions per window in _pippenger_wnaf a58f543 Add flags for choosing algorithm in ecmult_multi benchmark 36b22c9 Use scratch space dependent batching in ecmult_multi 355a38f Add pippenger_wnaf ecmult_multi bc65aa7 Add bench_ecmult dba5471 Add ecmult_multi tests 8c1c831 Generalize Strauss to support multiple points 548de42 add resizeable scratch space API 0e96cdc fix typo, s/changed/unchanged c7680e5 Reduce usage of hardcoded size constants 6ad5cdb Merge bitcoin#479: Get rid of reserved _t in type names 7a78f60 Print whether we're building benchmarks 4afec9f Build benchmarks by default d1dc9df Get rid of reserved _t in type names 0b70241 Merge bitcoin#474: Fix header guards using reserved identifiers ab1f89f Merge bitcoin#478: Fixed multiple typos 8c7ea22 Fixed multiple typos abe2d3e Fix header guards using reserved identifiers 57752d2 [build] Set --enable-jni to no by default instead of auto. f532bdc Merge bitcoin#459: Add pubkey prefix constants to include/secp256k1.h cac7c55 Merge bitcoin#470: Fix wnaf_const documentation 768514b Fix wnaf_const documentation with respect to return value and number of words set b8c26a3 Merge bitcoin#458: Fix typo in API documentation 817fb20 Merge bitcoin#440: Fix typos 12230f9 Merge bitcoin#468: Remove redundant conditional expression 2e1ccdc Remove redundant conditional expression e7daa9b [build] Tweak JNI macro to warn instead of error for JNI not found. 5b22977 [build] Update ax_jni_include_dir.m4 macro to deal with recent versions of macOS bc61b91 add pubkey prefix constants to include/secp256k1.h b0452e6 Fix typo in API documentation 84973d3 Merge bitcoin#454: Remove residual parts from the schnorr expirement. 5e95bf2 Remove residual parts from the schnorr expirement. cbc20b8 Merge bitcoin#452: Minor optimizations to _scalar_inverse to save 4M 4cc8f52 Merge bitcoin#437: Unroll secp256k1_fe_(get|set)_b32 to make them much faster. 465159c Further shorten the addition chain for scalar inversion. a2b6b19 Fix benchmark print_number infinite loop. 8b7680a Unroll secp256k1_fe_(get|set)_b32 for 10x26. aa84990 Unroll secp256k1_fe_(get|set)_b32 for 5x52. cf12fa1 Minor optimizations to _scalar_inverse to save 4M 1199492 Merge bitcoin#408: Add `secp256k1_ec_pubkey_negate` and `secp256k1_ec_privkey_negate` 6af0871 Merge bitcoin#441: secp256k1_context_randomize: document. ab31a52 Merge bitcoin#444: test: Use checked_alloc eda5c1a Merge bitcoin#449: Remove executable bit from secp256k1.c 51b77ae Remove executable bit from secp256k1.c 5eb030c test: Use checked_alloc 72d952c FIXUP: Missing "is" 70ff29b secp256k1_context_randomize: document. 4c0f32e Fix typo: "Agressive" → "Aggressive" 73aca83 Fix typo: "exectured" → "executed" 8e48aa6 Add `secp256k1_ec_pubkey_negate` and `secp256k1_ec_privkey_negate` git-subtree-dir: src/secp256k1 git-subtree-split: 1e6f1f5
5e95bf2 Remove residual parts from the schnorr expirement. (Gregory Maxwell) Tree-SHA512: de1e56cc54443e29a60787996a1b1381b0b84eacb87a8f1af06b5ba3900b1771c3a04fd547c65e21979e3c08c3a45d258d699eb951a956f8e617833c5396ecfe
Got tired of telling pool ops to not use hub mode and use -addnode and adding a little asterisk that it would be nice if addnode kept the node connected as a "Bitcoin backbone" should do, so I hacked an implementation together.