aboutsummaryrefslogtreecommitdiff
path: root/contrib/signet
AgeCommit message (Collapse)Author
2023-11-15contrib: use a raw string for a regular expression literal that contains ↵muxator
backslashes in signet/miner Running the miner under python >= 3.12 causes a SyntaxWarning. The problem was already present in previous versions, but it only triggered a DeprecationWarning, which was not shown by default. The change is useful for future-proofing the code base, since future python versions will start to exit with a runtime exception (see the reference given later). Command to see the warning at runtime under python3.11 (DeprecationWarning, needs "-Walways"): $ python3.11 -Walways ./contrib/signet/miner <BASE>/contrib/signet/miner:33: DeprecationWarning: invalid escape sequence '\d' RE_MULTIMINER = re.compile("^(\d+)(-(\d+))?/(\d+)$") 2023-11-15 16:02:49 ERROR Must specify command Command to see the warning at runtime under python3.12 (SyntaxWarning, no modifiers needed): $ python3.12 ./contrib/signet/miner <BASE>/contrib/signet/miner:33: SyntaxWarning: invalid escape sequence '\d' RE_MULTIMINER = re.compile("^(\d+)(-(\d+))?/(\d+)$") 2023-11-15 16:03:00 ERROR Must specify command Reference ( https://docs.python.org/3.8/library/re.html ): Regular expressions use the backslash character ('\') [...]. This collides with Python’s usage of the same character for the same purpose in string literals; [...] Also, please note that any invalid escape sequences in Python’s usage of the backslash in string literals now generate a DeprecationWarning and in the future this will become a SyntaxError. The solution is to use Python’s raw string notation for regular expression patterns;
2023-02-22Merge bitcoin/bitcoin#25867: lint: enable E722 do not use bare exceptfanquake
61bb4e783b3acc62b121a228f6b14c2462e23315 lint: enable E722 do not use bare except (Leonardo Lazzaro) Pull request description: Improve test code and enable E722 lint check. If you want to catch all exceptions that signal program errors, use except Exception: (bare except is equivalent to except BaseException:). Reference: https://peps.python.org/pep-0008/#programming-recommendations ACKs for top commit: MarcoFalke: lgtm ACK 61bb4e783b3acc62b121a228f6b14c2462e23315 Tree-SHA512: c7497769d5745fa02c78a20f4a0e555d8d3996d64af6faf1ce28e22ac1d8be415b98e967294679007b7bda2a9fd04031a9d140b24201e00257ceadeb5c5d7665
2023-02-18lint: enable E722 do not use bare exceptLeonardo Lazzaro
2023-01-18Revert "contrib: Fix capture_output in getcoins.py"MarcoFalke
This reverts commit be59bd17ec753af7cc763474f2432d12bfc88c2f because the changes are no longer needed.
2022-12-24scripted-diff: Bump copyright headersHennadii Stepanov
-BEGIN VERIFY SCRIPT- ./contrib/devtools/copyright_header.py update ./ -END VERIFY SCRIPT- Commits of previous years: - 2021: f47dda2c58b5d8d623e0e7ff4e74bc352dfa83d7 - 2020: fa0074e2d82928016a43ca408717154a1c70a4db - 2019: aaaaad6ac95b402fe18d019d67897ced6b316ee0
2022-10-03Merge bitcoin/bitcoin#26208: signet/miner: reduce default interblock ↵fanquake
interval limit to 30min 51a08f41ffab914d6dfa009b2ba31065b86444a4 signet/miner: reduce default interblock interval limit to 30min (Anthony Towns) Pull request description: Reduces the cap on the time between blocks from 60 minutes to 30 minutes, and makes it configurable. Top commit has no ACKs. Tree-SHA512: 7b880c50e47d055a2737c057fab190017748849d264c6c39dde465959a544d502221d12c6307d4de693f51badb4779b9c147e48775ede6ec6613e808067ab279
2022-09-30contrib: Fix capture_output in getcoins.pywillcl-ark
Our required Python version 3.6.12 does not support `capture_output` as a subprocess.run argument; this was added in python 3.7. We can emulate it by setting stdout and stderr to subprocess.PIPE
2022-09-29signet/miner: reduce default interblock interval limit to 30minAnthony Towns
Also allow the operator to change it, if desired, without having to edit the code.
2022-07-19test: add constants for PSBT key types (BIP 174)Sebastian Falbesoner
Also take use of the constants in the signet miner to get rid of magic numbers and increase readability and maintainability.
2022-07-19refactor: move PSBT(Map) helpers from signet miner to test frameworkSebastian Falbesoner
Can be easily reviewed with `--color-moved=dimmed-zebra`.
2022-07-19refactor: move `from_binary` helper from signet miner to test frameworkSebastian Falbesoner
Can be easily reviewed with `--color-moved=dimmed-zebra`.
2022-07-19scripted-diff: rename `FromBinary` helper to `from_binary` (signet miner)Sebastian Falbesoner
-BEGIN VERIFY SCRIPT- sed -i s/FromBinary/from_binary/g ./contrib/signet/miner -END VERIFY SCRIPT-
2022-07-03contrib: dedup `get_witness_script` helper in signet minerSebastian Falbesoner
2022-03-14contrib: fix signet miner (sighash mismatch)Sebastian Falbesoner
PSBT signing was changed to use SIGHASH_DEFAULT by default in #22514. The signet miner script sets the sighash type of the created PSBT to SIGHASH_ALL, hence this leads to a sighash mismatch when the `walletprocesspsbt` RPC is called. Fix this by explicitly passing the correct sighash type. Note that the same change was needed in one of our functional tests, see commit d3992669df826899a3de78a77a366dab46028026. Reported by gruve-p.
2022-02-13improved getcoins.pysh15h4nk
2021-12-30scripted-diff: Bump copyright headersHennadii Stepanov
-BEGIN VERIFY SCRIPT- ./contrib/devtools/copyright_header.py update ./ -END VERIFY SCRIPT- Commits of previous years: * 2020: fa0074e2d82928016a43ca408717154a1c70a4db * 2019: aaaaad6ac95b402fe18d019d67897ced6b316ee0
2021-10-02contrib: Ask for captcha in signet getcoins.pyW. J. van der Laan
As the faucet will always ask for a captcha now, the current script is no longer usable. Change the script to print the captcha in dot-matrix to the terminal, using unicode Braille characters.
2021-08-26Merge bitcoin/bitcoin#22660: contrib: catch bitcoin-cli RPC call errors in ↵MarcoFalke
getcoins.py 42dbd9025adc200012c103d2c091cf026f1d50b1 contrib: return non-zero status if getcoins.py errors (Sebastian Falbesoner) 8c203cf0e1b9558b54030c284ddf7706d64cdde2 contrib: catch bitcoin-cli RPC call errors in getcoins.py (Sebastian Falbesoner) 0eca5ebaced264d041de815316eaca8cf6fef92f contrib: refactor: introduce bitcoin-cli RPC call helper in getcoins.py (Sebastian Falbesoner) Pull request description: This PR is based on #22565 ("[script] signet's getcoins.py improvements"), which should be reviewed first. The signet faucet script `contrib/signet/getcoins.py` currently issues bitcoin-cli RPC calls without catching errors -- the only case tackled is if there is no `bitcoin-cli` file found. Instead of crashing with a stack-trace on a failed RPC call, the changes in this PR aim to produce a more user-friendly output (see also https://github.com/bitcoin/bitcoin/pull/22565#discussion_r683754875). Additionally, in case of any error, a non-zero status is now returned (instead of 0, indicating success), which could be useful for other scripts taking use of signet faucet script. The most straight-forward way to test this is invoking the script without a `bitcoind` running on signet: PR22565 branch: ``` $ ./contrib/signet/getcoins.py error: Could not connect to the server 127.0.0.1:8332 Make sure the bitcoind server is running and that you are connecting to the correct RPC port. Traceback (most recent call last): File "./contrib/signet/getcoins.py", line 26, in <module> curr_signet_hash = subprocess.check_output([args.cmd] + args.bitcoin_cli_args + ['getblockhash', '1']).strip().decode() File "/usr/local/lib/python3.8/subprocess.py", line 415, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/local/lib/python3.8/subprocess.py", line 516, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['bitcoin-cli', 'getblockhash', '1']' returned non-zero exit status 1. ``` this PR branch: ``` $ ./contrib/signet/getcoins.py error: Could not connect to the server 127.0.0.1:38332 Make sure the bitcoind server is running and that you are connecting to the correct RPC port. ----- Error while calling "bitcoin-cli -signet getblockhash 1" (see output above). ``` ACKs for top commit: kallewoof: Code ACK 42dbd9025adc200012c103d2c091cf026f1d50b1 Zero-1729: tACK 42dbd90 🧪 Tree-SHA512: 912240a4ed03c87035e370602f4095c7ffe26806421bbbd6cf86588126f2310a01a6a61606e9e2918fb2c1a0debdd0ce768c69ba2e4b8e7750fa3474a56d01a0
2021-08-23Merge bitcoin/bitcoin#22565: [script] signet's getcoins.py improvementsW. J. van der Laan
b0c8246cac97b7792a50afc22ef1fe39c5028e00 Add cleaner errors for unsuccessful faucet transactions (NikhilBartwal) 1c612b274b1587c43ee6e6a486aed653b9ca5f70 [script] Update signet getcoins.py for custom network (NikhilBartwal) Pull request description: Currently, using the getcoins.py with a custom signet executes successfully and shows the transfer of 0.001 testBTC as complete, however for obvious reasons, it should not. In fact, upon verification it does not actually execute the transaction, but rather gives the output that it did, as shown below which can be misleading: ``` [nikhilb@nikhil-PC bitcoin]$ echo $datadir /home/nikhilb/signet-custom [nikhilb@nikhil-PC bitcoin]$ contrib/signet/getcoins.py -- -datadir=$datadir Payment of 0.00100000 BTC sent with txid dd22c7d996e95f3e5baf20f73140d517ff48f1b26d0e4fefd61e3c37991b8f86 [nikhilb@nikhil-PC bitcoin]$ bitcoin-cli -datadir=$datadir getrawtransaction dd22c7d996e95f3e5baf20f73140d517ff48f1b26d0e4fefd61e3c37991b8f86 error code: -5 error message: No such mempool or blockchain transaction. Use gettransaction for wallet transactions. [nikhilb@nikhil-PC bitcoin]$ bitcoin-cli -datadir=$datadir gettransaction dd22c7d996e95f3e5baf20f73140d517ff48f1b26d0e4fefd61e3c37991b8f86 error code: -5 error message: Invalid or non-wallet transaction id ``` This PR adds a sanity check for custom signet by comparing the current network's first block hash (the block after the genesis block) with global signet's respective block hash (since all signet networks share the same genesis block) and if a custom network is detected, the user is prompted to either work on the global signet or setup their own faucet. The PR was checked to be working successfully, giving the output as below: ``` [nikhilb@nikhil-PC bitcoin]$ git checkout update_signet_getcoins Switched to branch 'update_signet_getcoins' Your branch is ahead of 'upstream/master' by 1 commit. (use "git push" to publish your local commits) [nikhilb@nikhil-PC bitcoin]$ contrib/signet/getcoins.py -- -datadir=$datadir The global faucet cannot be used with a custom Signet network. Please use the global signet or setup your custom faucet for the same. You can have a look here for setting up your own faucet: https://en.bitcoin.it/wiki/Signet ``` ACKs for top commit: prayank23: utACK https://github.com/bitcoin/bitcoin/pull/22565/commits/b0c8246cac97b7792a50afc22ef1fe39c5028e00 kallewoof: ACK b0c8246cac97b7792a50afc22ef1fe39c5028e00 arnabsen1729: utACK b0c8246 prakash1512: utACK b0c8246 0xB10C: Tested ACK b0c8246cac97b7792a50afc22ef1fe39c5028e00 theStack: Tested ACK b0c8246cac97b7792a50afc22ef1fe39c5028e00 Zero-1729: crACK b0c8246 🧉 Tree-SHA512: 144b47a83008521a5cda13f4c1b12809a125a744f865a8e0f792132d52fdb88926d4f4f4d7230452c2e129b5879892cdbeda981b8af10b789e9fc0cda2905a5d
2021-08-16refactor: replace remaining binascii method calls Zero-1729
2021-08-07contrib: return non-zero status if getcoins.py errorsSebastian Falbesoner
2021-08-07contrib: catch bitcoin-cli RPC call errors in getcoins.pySebastian Falbesoner
2021-08-07contrib: refactor: introduce bitcoin-cli RPC call helper in getcoins.pySebastian Falbesoner
2021-08-05Add cleaner errors for unsuccessful faucet transactionsNikhilBartwal
2021-08-05[script] Update signet getcoins.py for custom networkNikhilBartwal
Currently, using the getcoins.py with a custom signet executes successfully and shows the transaction as complete, however for obvious reasons, it should not. This PR adds a sanity check for custom signet by comparing the current network's first block hash with global signet's respective hash.
2021-06-21scripted-diff: test: rename `FromHex` to `from_hex`Sebastian Falbesoner
-BEGIN VERIFY SCRIPT- sed -i 's/\<FromHex\>/from_hex/g' $(git grep -l FromHex) -END VERIFY SCRIPT- Co-authored-by: MarcoFalke <falke.marco@gmail.com>
2021-06-21test: remove `ToHex` helper, use .serialize().hex() insteadSebastian Falbesoner
2021-06-21test: introduce `tx_from_hex` helper for tx deserializationSebastian Falbesoner
`FromHex` is mostly used for transactions, so we introduce a shortcut `tx_from_hex` for `FromHex(CTransaction, hex_str)`.
2021-02-07contrib/signet/miner: remove debug codeAnthony Towns
2021-02-07contrib/signet/README.md: Update miner descriptionAnthony Towns
2021-02-07contrib/signet/miner: Automatic timestamp for first blockAnthony Towns
When mining the first block of a new signet chain, pick a timestamp for the first block so that after mining 100 blocks the timestamp will be back to the current time -- this prevents an unnecessary delay before any miner rewards have matured enough to be spent. This takes into account that the delta between blocks may be shorter than 10 minutes due to attempting to increase the difficulty to match --nbits, but does not take into account the time spent actually generating the 100 blocks.
2021-02-07contrib/signet/miner: --grind-cmd is required for calibrateAnthony Towns
Thanks to muxator for spotting.
2021-02-07contrib/signet: Fix typosAnthony Towns
Thanks to muxator, JeremyRubin, and gruve-p for spotting.
2021-01-12contrib/signet: Document miner script in README.mdAnthony Towns
2021-01-12contrib/signet: Add script for generating a signet chainAnthony Towns
2020-10-16doc: add contrib/signet readmeKarl-Johan Alm
2020-10-14contrib: add getcoins.py script to get coins from (signet) faucetKarl-Johan Alm