From ab7ca1f26f4d0b6f426c9830f3f6268eff3e069f Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Sun, 12 Apr 2015 20:17:00 -0400 Subject: [PATCH 1/3] Dev Docs: RPCs: Add New 'generate' & Note 'getgenerate' Change --- _autocrossref.yaml | 2 + _includes/helpers/summaries.md | 1 + _includes/ref/bitcoin-core/rpcs/quick-ref.md | 4 +- .../ref/bitcoin-core/rpcs/rpcs/generate.md | 64 +++++++++++++++++++ .../ref/bitcoin-core/rpcs/rpcs/setgenerate.md | 3 + _includes/references.md | 1 + en/developer-reference.md | 2 + 7 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 _includes/ref/bitcoin-core/rpcs/rpcs/generate.md diff --git a/_autocrossref.yaml b/_autocrossref.yaml index 32214172..73cb0c5f 100644 --- a/_autocrossref.yaml +++ b/_autocrossref.yaml @@ -399,6 +399,8 @@ CVE-2012-2459: '`estimatefee` RPC': rpc estimatefee '`estimatepriority`': rpc estimatepriority '`estimatepriority` RPC': rpc estimatepriority +'`generate`': rpc generate +'`generate` RPC': rpc generate '`getaccount`': rpc getaccount '`getaccount` RPC': rpc getaccount '`getaccountaddress`': rpc getaccountaddress diff --git a/_includes/helpers/summaries.md b/_includes/helpers/summaries.md index 1138cd40..8ac79776 100644 --- a/_includes/helpers/summaries.md +++ b/_includes/helpers/summaries.md @@ -12,6 +12,7 @@ This file is licensed under the terms of its source texts{%endcomment%} {% assign summary_encryptWallet="encrypts the wallet with a passphrase. This is only to enable encryption for the first time. After encryption is enabled, you will need to enter the passphrase to use private keys." %} {% assign summary_estimateFee="estimates the transaction fee per kilobyte that needs to be paid for a transaction to be included within a certain number of blocks." %} {% assign summary_estimatePriority="estimates the priority that a transaction needs in order to be included within a certain number of blocks as a free high-priority transaction." %} +{% assign summary_generate="nearly instantly generates blocks (in regtest mode only)" %} {% assign summary_getAccountAddress="returns the current Bitcoin address for receiving payments to this account. If the account doesn't exist, it creates both the account and a new address for receiving payment. Once a payment has been received to an address, future calls to this RPC for the same account will return a different address." %} {% assign summary_getAccount="returns the name of the account associated with the given address." %} {% assign summary_getAddedNodeInfo="returns information about the given added node, or all added nodes (except onetry nodes). Only nodes which have been manually added using the `addnode` RPC will have their information displayed." %} diff --git a/_includes/ref/bitcoin-core/rpcs/quick-ref.md b/_includes/ref/bitcoin-core/rpcs/quick-ref.md index d6b64447..19e6feac 100644 --- a/_includes/ref/bitcoin-core/rpcs/quick-ref.md +++ b/_includes/ref/bitcoin-core/rpcs/quick-ref.md @@ -17,6 +17,7 @@ Use v0.n.n in abbreviation title to prevent autocrossrefing. {% endcomment %} +{% assign NEW_MASTER='**New in master**' %} {% assign UPDATED_MASTER='**Updated in master**' %} @@ -76,8 +77,9 @@ Use v0.n.n in abbreviation title to prevent autocrossrefing. {% autocrossref %} +* [Generate][rpc generate]: {{summary_generate}} {{NEW_MASTER}} * [GetGenerate][rpc getgenerate]: {{summary_getGenerate}} -* [SetGenerate][rpc setgenerate]: {{summary_setGenerate}} +* [SetGenerate][rpc setgenerate]: {{summary_setGenerate}} {{UPDATED_MASTER}} {% endautocrossref %} diff --git a/_includes/ref/bitcoin-core/rpcs/rpcs/generate.md b/_includes/ref/bitcoin-core/rpcs/rpcs/generate.md new file mode 100644 index 00000000..05d70b91 --- /dev/null +++ b/_includes/ref/bitcoin-core/rpcs/rpcs/generate.md @@ -0,0 +1,64 @@ +{% comment %} +This file is licensed under the MIT License (MIT) available on +http://opensource.org/licenses/MIT. +{% endcomment %} +{% assign filename="_includes/ref/bitcoin-core/rpcs/rpcs/generate.md" %} + +##### Generate +{% include helpers/subhead-links.md %} + +{% assign summary_generate="nearly instantly generates blocks (in regtest mode only)" %} + +{% autocrossref %} + +*Requires wallet support.* + +The `generate` RPC {{summary_generate}} + +*Parameter #1---the number of blocks to generate* + +{% itemplate ntpd1 %} +- n: "Blocks" + t: "number (int)" + p: "Required
(exactly 1)" + d: "The number of blocks to generate. The RPC call will not return until all blocks have been generated" +{% enditemplate %} + +*Result---the generated block header hashes* + +{% itemplate ntpd1 %} +- n: "`result`" + t: "array" + p: "Required
(exactly 1)" + d: "An array containing the block header hashes of the generated blocks (may be empty if used with `generate 0`)" + +- n: "→
Header Hashes" + t: "string (hex)" + p: "Required
(1 or more)" + d: "The hashes of the headers of the blocks generated in regtest mode, as hex in RPC byte order" +{% enditemplate %} + +*Examples from Bitcoin Core master (commit c2fa0846)* + +Using regtest mode, generate 2 blocks: + +{% highlight bash %} +bitcoin-cli -regtest generate 2 +{% endhighlight %} + +Result: + +{% highlight json %} +[ + "36252b5852a5921bdfca8701f936b39edeb1f8c39fffe73b0d8437921401f9af", + "5f2956817db1e386759aa5794285977c70596b39ea093b9eab0aa4ba8cd50c06" +] +{% endhighlight %} + +*See also* + +* [SetGenerate][rpc getgenerate]: {{summary_getGenerate}} +* [GetMiningInfo][rpc getmininginfo]: {{summary_getMiningInfo}} +* [GetBlockTemplate][rpc getblocktemplate]: {{summary_getBlockTemplate}} + +{% endautocrossref %} diff --git a/_includes/ref/bitcoin-core/rpcs/rpcs/setgenerate.md b/_includes/ref/bitcoin-core/rpcs/rpcs/setgenerate.md index 5edf76c9..1956f7b6 100644 --- a/_includes/ref/bitcoin-core/rpcs/rpcs/setgenerate.md +++ b/_includes/ref/bitcoin-core/rpcs/rpcs/setgenerate.md @@ -37,6 +37,9 @@ The `setgenerate` RPC {{summary_setGenerate}} *Parameter #2 (regtest)---the number of blocks to generate* +Note: setgenerate in regtest mode has been removed in Bitcoin Core +master. See the `generate` RPC for the replacement. + {% itemplate ntpd1 %} - n: "Blocks" t: "number (int)" diff --git a/_includes/references.md b/_includes/references.md index f6edf147..2153c9bf 100644 --- a/_includes/references.md +++ b/_includes/references.md @@ -230,6 +230,7 @@ http://opensource.org/licenses/MIT. [rpc encryptwallet]: /en/developer-reference#encryptwallet [rpc estimatefee]: /en/developer-reference#estimatefee [rpc estimatepriority]: /en/developer-reference#estimatepriority +[rpc generate]: /en/developer-reference#generate [rpc getaccount]: /en/developer-reference#getaccount [rpc getaccountaddress]: /en/developer-reference#getaccountaddress [rpc getaddednodeinfo]: /en/developer-reference#getaddednodeinfo diff --git a/en/developer-reference.md b/en/developer-reference.md index f1709ca9..4bb9b20d 100644 --- a/en/developer-reference.md +++ b/en/developer-reference.md @@ -80,6 +80,8 @@ untrusted source. {% include ref/bitcoin-core/rpcs/rpcs/estimatepriority.md %} +{% include ref/bitcoin-core/rpcs/rpcs/generate.md %} + {% include ref/bitcoin-core/rpcs/rpcs/getaccountaddress.md %} {% include ref/bitcoin-core/rpcs/rpcs/getaccount.md %} From df2f3a77d0cfa2de8b2d14550bb0e0f68352354f Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Sun, 12 Apr 2015 20:27:34 -0400 Subject: [PATCH 2/3] Dev Docs: Describe New RPC 'generate' In Examples --- _includes/example_testing.md | 6 +++++- _includes/example_transactions.md | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/_includes/example_testing.md b/_includes/example_testing.md index 82d87826..70f141f6 100644 --- a/_includes/example_testing.md +++ b/_includes/example_testing.md @@ -64,12 +64,16 @@ Start `bitcoind` in regtest mode to create a private block chain. {% endautocrossref %} ~~~ +## Bitcoin Core 0.10.1 and earlier bitcoin-cli -regtest setgenerate true 101 + +## Bitcoin Core master (as of commit 48265f3) +bitcoin-cli -regtest generate 101 ~~~ {% autocrossref %} -Generate 101 blocks using a special version of the `setgenerate` RPC +Generate 101 blocks using a special RPC which is only available in regtest mode. This takes about 30 seconds on a generic PC. Because this is a new block chain using Bitcoin's default rules, the first blocks pay a block reward of 50 bitcoins. Unlike diff --git a/_includes/example_transactions.md b/_includes/example_transactions.md index 0b8f1162..a0214cc6 100644 --- a/_includes/example_transactions.md +++ b/_includes/example_transactions.md @@ -115,8 +115,12 @@ someone else, that second transaction would not be displayed in our list of UTXOs. {% highlight bash %} +## Bitcoin Core 0.10.1 and earlier > bitcoin-cli -regtest setgenerate true 1 +## Later versions of Bitcoin Core +> bitcoin-cli -regtest generate 1 + > unset NEW_ADDRESS {% endhighlight %} @@ -332,8 +336,12 @@ would usually then broadcast it to other peers, but we're not currently connected to other peers because we started in regtest mode. {% highlight bash %} +## Bitcoin Core 0.10.1 and earlier > bitcoin-cli -regtest setgenerate true 1 +## Later versions of Bitcoin Core +> bitcoin-cli -regtest generate 1 + > unset UTXO_TXID UTXO_VOUT NEW_ADDRESS RAW_TX SIGNED_RAW_TX {% endhighlight %} From 26d5f08cc1b7df643e284ca4259529bd9594ebce Mon Sep 17 00:00:00 2001 From: sunnankar Date: Mon, 20 Apr 2015 00:00:51 -0400 Subject: [PATCH 3/3] Update en.yml No text changed to prevent translation issues. Link to article by Vitalik discussing quantum computing issues and potential solutions. --- _translations/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_translations/en.yml b/_translations/en.yml index 3525896d..26ba94ff 100644 --- a/_translations/en.yml +++ b/_translations/en.yml @@ -383,7 +383,7 @@ en: colludetxt1: "It is not possible to change the Bitcoin protocol that easily. Any Bitcoin client that doesn't comply with the same rules cannot enforce their own rules on other users. As per the current specification, double spending is not possible on the same block chain, and neither is spending bitcoins without a valid signature. Therefore, It is not possible to generate uncontrolled amounts of bitcoins out of thin air, spend other users' funds, corrupt the network, or anything similar." colludetxt2: "However, powerful miners could arbitrarily choose to block or reverse recent transactions. A majority of users can also put pressure for some changes to be adopted. Because Bitcoin only works correctly with a complete consensus between all users, changing the protocol can be very difficult and requires an overwhelming majority of users to adopt the changes in such a way that remaining users have nearly no choice but to follow. As a general rule, it is hard to imagine why any Bitcoin user would choose to adopt any change that could compromise their own money." quantum: "Is Bitcoin vulnerable to quantum computing?" - quantumtxt1: "Yes, most systems relying on cryptography in general are, including traditional banking systems. However, quantum computers don't yet exist and probably won't for a while. In the event that quantum computing could be an imminent threat to Bitcoin, the protocol could be upgraded to use post-quantum algorithms. Given the importance that this update would have, it can be safely expected that it would be highly reviewed by developers and adopted by all Bitcoin users." + quantumtxt1: "Yes, most systems relying on cryptography in general are, including traditional banking systems. However, quantum computers don't yet exist and probably won't for a while. In the event that quantum computing could be an imminent threat to Bitcoin, the protocol could be upgraded to use post-quantum algorithms. Given the importance that this update would have, it can be safely expected that it would be highly reviewed by developers and adopted by all Bitcoin users." help: "Help" morehelp: "I'd like to learn more. Where can I get help?" morehelptxt1: "You can find more information and help on the resources and community pages or on the Wiki FAQ."