问题标签 [bitcoin-testnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - How to connect to a Bitcoin testnet running in a docker container
I am testing some Bitcoin related code and in order to test it have installed bitcoin-testnet-box within a docker container.
It's running fine, and, within the container I can execute commands and see the results.
The Dockerfile is exposing port 19001, which I am mapping to port 49155
as the RPC port for one of the bitcond
instances and I am trying to communicate with it using node-bitcoin.
I've written a simple test which aims simply to get the current difficulty.
This was failing (see update below) with the error:
{ [Error: connect ECONNREFUSED] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect' }
A quick look at docker ps
shows
I tried changing the host to both "localhost" and to "0.0.0.0" but got the same result.
Clearly I am missing something simple as the node-bitcoin tests are not really doing anything different.
The command used to run the bitcoin-testnet-box
was
What might I be doing wrong?
Update
I changed bitcoin.conf
as suggested below and now the error message is
My bitcoin.conf
looks like
another update
It's worth explaining that I am running docker
on my Mac using boot2docker
so the IP number I am referring to is the IP that is displayed when I run docker ip
, not the IP of my Mac itself. I'm running the test using NodeJS
on my Mac, not in the boot2docker VM or the actual Docker container. So, I've tried adding rpcallowip=192.168.1.4
(where 192.168.1.4
is my Mac's IP) to my bitcoind.conf
files too just in case. Alas that made no difference, I am still getting the { [Error: Invalid params, response status code: 403] code: -32602 }
response.
I have also triple-checked my username and password against what's in the bitcoin.conf file.
Per Chris McKinnel's suggestion below I have run netstat -tunlp
within the docker container and it shows:
So I also added rpcallowip=0.0.0.0
to my bitcoin.conf
file. Alas still no difference.
finally a solution
Thanks again to Chris McKinnel below setting rpcallowip=*
solved the problem. Of course this raises a whole new problem but I'll burn that bridge when I get to it. For now I can test my Bitcoin processes quite happily.
bitcoin - 为什么比特币无法进行挖矿?
我也运行了守护程序,但它不工作错误是:
bitcoin - 使用随机对等点发现模拟私有比特币网络
我正在寻找一种在我的私有 LAN/Wifi 网络上模拟 1000 节点比特币网络的方法。
我阅读了开发人员指南:https ://bitcoin.org/en/developer-examples#regtest-mode ,其中提到了regtest
主要适用于单个节点或指定节点的模式,而不是像实际网络这样的随机节点。
有些人可能会建议使用该testnet
模式,但这对我来说没有用,因为我想检查一个新的比特币协议,该协议不会被testnet
网络上的未知节点支持。
简而言之,我希望在我的 LAN/Wifi 网络中模拟一个完整的比特币网络。
bitcoin - 连接到硬编码节点后,比特币对等点发现如何工作?
我正在修改比特币源代码,并试图了解对等发现机制在testnet
我进行了以下更改的模式下的确切工作方式:
禁用 DNS 种子发现以强制 bitcoind 回退以连接到硬编码节点。
将默认硬编码节点更改为我已知的 4 个地址,比如 A、B、C 和 D,我确保它们始终在线。
现在,当我运行 bitcoind 客户端(称为 E)时,它连接到 A、B、C 或 D 之一,运行相同的修改版本的 bitcoind。getaddr
它通过交换和消息从它首先连接到的硬编码节点获取对等地址,addr
但我不确定之后它是如何进行的。我有以下查询:
一个。如果一个节点回退到连接到硬编码节点,它应该只连接到一个硬编码节点,就像在我的情况下发生的那样,还是可以连接到多个硬编码节点?
湾。通过addr
消息获取对等地址后,节点 E 什么时候开始连接这些对等点?
如果可能,请指出相关的代码文件/部分。谢谢
bitcoin - 运行 bitcoin-qt,以便从本地测试网加载数据(我自己的电脑上只有 2 个节点)
我正在从freewil/bitcoin-testnet-box运行本地 tesnet ,我在本地(通过 docker*)构建并运行它,使用以下命令:
无论如何,这是受到github 上这个问题的建议的启发- 这里看起来如何:
关于为什么以这种方式运行它的建议如下:
然后我使用以下命令运行 bitcoin-qt:
但它似乎仍然没有连接到我的本地测试网,这是一个截图
比特币-qt:
'docker ps' 的输出:
好吧-所以-问题来了
问题:我如何配置 bitcoin-qt 或另一个钱包 - 这样它只会从我的本地测试网加载数据,只有两个节点,在我自己的机器上,看起来像这样:
*这样我就可以自己设置IP地址-有没有办法在不使用docker的情况下在本地运行它?
transactions - 这是使用 Bitcoin-cli 命令发送原始交易 BTC 的方法
设想:
Michael 从 Pablo 收到 0.05000000 BTC,从 Kuradang 收到另外 0.01000000 BTC。Michael 还想向 Berteng 发送 0.02500000 BTC。Michael 收到的每一笔金额都有相应的 txid 和其他详细信息。让我们使用命令检查一下,
listunspent
然后使用创建原始交易,然后使用createrawtransaction
签名并使用signrawtransaction
发送原始交易sendrawtransaction
。
鉴于:
- 迈克尔的比特币地址:mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe
- Berteng 的比特币地址:mxh3H416KCRoBDiweSESew5YJyAk1nxLrN
- 发送给 Berteng:0.02500000 mBTC
步骤1)
listunspent
格式:
让我们用他的地址检查迈克尔的未使用清单。
执行:
结果:
我们在这里看到的是为我们的地址 mkrz 分配了 50 和 10 mBTC 的结果……。为了花费这个输出,我们将创建一个新的交易。
第2步)
createrawtransaction
我们需要从 的结果中选择一些数量足够的块
listunspent
。由于我们只需要发送 0.02500000 mBTC,我认为第一个区块的数量足以进行交易。
格式:
为了支付费用,我们将减少 0.5 毫比特的找零输出,如下所示。
执行:
结果
createrawtransaction 命令生成一个原始的十六进制字符串,该字符串对我们提供的交易细节进行编码。如果要解码十六进制,只需使用 decoderawtransaction 命令。
步骤 3)
signrawtransaction
使用存储在钱包中或在调用中提供的私钥以序列化交易格式对交易进行签名。
格式:
执行:
结果:
现在 signrawtransaction 命令返回另一个十六进制编码的原始交易。
第4步)
sendrawtransaction
RPC 验证交易并将其广播到对等网络。
格式:
执行:
结果:
命令 sendrawtransaction 在网络上提交交易时返回交易哈希 (txid)。要检查交易哈希,您可以访问tbtc.blockr.io
欲了解更多信息,请参阅此网站掌握比特币
private-key - 使用私钥发送资产(彩色硬币,Colu SDK)
根据彩色硬币文档,我已经发送了testnet
这样的资产:
它工作正常。但是我怎样才能将硬币从to_address
转回issuance_address
?
我想可以使用生成的WIF
私钥to_address
为此目的,代码应该是什么?
如果我只是用它替换issuance_address
它to_address
会引发错误:
如何使用给定的私钥(WIF?)进行此类转移?我在 Colored Coins 和 Colu SDK 的文档中一无所获。
java - 通过比特币付款的正确方法
我正在尝试通过 bitcoinj(版本 0.14.3)进行交易,我希望在付款后取回零钱。我正在使用测试网,它不是真正的比特币。我有下一个代码:
所以,我将两个输出放入事务中:
- 汇款地址
- 取回零钱的钱包地址
我寄一些钱到第一个地址。我向第二个地址发送下一个值:我钱包上的所有可用资金减去收到到第一个地址的钱。
但播出后我有一个意想不到的结果。在使用此方案进行了一些交易后,我注意到从我的钱包中提取的错误值。令人惊讶的是,有时钱会被提取,但有时钱会进入钱包。
有人可以解释我做错了什么以及如何解决吗?
php - Mdanter GmpMath::cmp() 必须是 GMP 的实例
未捕获的类型错误:传递给 Mdanter\Ecc\Math\GmpMath::cmp() 的参数 1 必须是 GMP 的实例,给定字符串,在 /var/www/html/btc/lib/vendor/bitwasp/bitcoin/src/ 中调用Crypto/EcAdapter/BaseEcAdapter.php 在第 64 行并在 /var/www/html/btc/lib/vendor/mdanter/ecc/src/Math/GmpMath.php:13\n 堆栈跟踪:\n#0 /var/ 中定义www/html/btc/lib/vendor/bitwasp/bitcoin/src/Crypto/EcAdapter/BaseEcAdapter.php(64): Mdanter\Ecc\Math\GmpMath->cmp('105825702696369...', Object(GMP)) \n#1 /var/www/html/btc/lib/vendor/bitwasp/bitcoin/src/Crypto/EcAdapter/PhpEcc.php(220): BitWasp\Bitcoin\Crypto\EcAdapter\BaseEcAdapter->checkInt('105825702696369. ..',对象(GMP))\n#2 /var/www/html/btc/lib/vendor/bitwasp/bitcoin/src/Key/PrivateKey.php(44):BitWasp\Bitcoin\Crypto\EcAdapter\PhpEcc ->validatePrivateKey(对象(BitWasp\Buffertools\Buffer))\n#3 /var/www/html/btc/lib/vendor/bitwasp/bitcoin/src/Key/PrivateKeyFactory.php(43): BitWasp\Bitcoin\Key\PrivateKey ->__construct(Object(BitWasp\Bitcoin\Crypto\EcAdapter\PhpEcc), '105825702696369...', false) 在 /var/www/html/btc/lib/vendor/mdanter/ecc/src/Math/GmpMath.第 13 行的 php
bitwasp 在创建公钥时给出字符串输出而不是 GMP 对象
api - 此端点不支持 `merchant` 外观"
我已经在 PHP 中设置了 bitpay API,我创建了一个商家令牌。出于测试目的,我设置了比特币核心测试网钱包。但是当我创建支付以将比特币发送到我的测试网钱包时,我给了我一个例外“这个端点不支持merchant
门面”。我创建密钥的代码,
但是,当我进行支付时,它给了我例外。