问题标签 [bitcoinj]

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.

0 投票
0 回答
32 浏览

java - Bitcoinj 不会增加钱包价值

这是钱包、区块和 PeerGroup 的初始化:

这是交易代码:

但是当我运行程序时,我遇到了这个错误:

0 投票
1 回答
310 浏览

java - 仅使用 BitcoinJ 中的私钥获取压缩的公钥和比特币地址

我已经知道使用 BitcoinJ 中的 ECKey 对象从 base58 编码的私钥中获取公钥。请参阅示例代码。

但是我仍然不明白从“密钥”对象中获取压缩的私钥比特币地址。我尝试了一些compressPoint()方法。但我没有成功。

0 投票
2 回答
444 浏览

java - 在 BitcoinJ Java 中从 WIF 生成 P2SH 比特币地址

我正在尝试从 WIF 私钥创建 P2SH-Segwit 比特币地址。我在 Java 中使用 BitcoinJ 库。请参阅以下代码。

它的输出公钥是 03b5319c83adf4a2e274c37401623c7bf0ba453cee3e119f3bc2c523d27059b64f。它的输出 P2SH 地址是 3Az5wdibtPRGac41aGtyqzT1ejtobvb6qW,这与正确的 P2SH 地址 38SGXvkMvq8Tsop8rFx2K4JnaFKYZkjd5z 相差甚远

如果你们中的任何人知道要纠正这个问题,我很乐意听取您的意见。

0 投票
0 回答
17 浏览

bitcoinj - 坚持配置比特币核心构建

跟随 Andreas Antonopoulos 大师比特币书籍。

遗憾的是,我已经卡在第 3 章,配置比特币核心构建。

  1. 我克隆了比特币源代码的本地副本。
  2. 选择了比特币核心版本。(v0.11.2) $ git 状态

当我尝试打开更多 doc/build-windows.md 命令时,我得到 Invalid Parameters - /build-windows.md

使用文件资源管理器后,我看不到 build-windows.md 文件

我不知道我需要为我的 Windows 机器安装哪些存储库并且无法运行 ./autogen.sh

请帮忙?

0 投票
0 回答
150 浏览

java - 如何使用 bitcoinj 库从现有钱包发送交易?

我们正在尝试使用 bitcoinj 0.15.10 库来管理比特币钱包。我们遇到的问题是我们如何将现有钱包与我们的代码连接起来,以便我们进行交易。我们已经尝试了在文档和来自 github 的示例中可以找到的所有内容,但没有任何效果。在这里,我们找到了一些代码示例,但它给我们带来了钱包中没有钱的错误。

打印钱包显示钱包没有交易,也没有比特币。我们从 block.io 网站加载了一个有效种子的钱包,并在上面获得了一些 BTC。这是我们得到的错误:

有人可以帮助我们使用 bitcoinj 库将我们的 java 代码与现有的 BTC(testnet)钱包连接起来吗?

0 投票
1 回答
654 浏览

java - 如何在 bitcoinj java 或 kotlin 中从比特币的负私钥生成正私钥

我在比特币中使用 -13 作为私钥,但私钥无效。如何使用 Bitcoinj 或 java 从 -13 或任何其他负数中获取正私钥并生成相同的地址?

0 投票
1 回答
465 浏览

java - 当资金已发送到本地 regtest 网络上的特定比特币地址时,我如何获得通知?

我想以编程方式检测何时有人将比特币发送到某个地址。这发生在我开始使用这个docker-compose.yml文件的本地测试网上。

一旦本地测试网运行,我使用创建一个新地址

假设它返回2N23tWAFEtBtTgxNjBNmnwzsiPdLcNek181

我将此地址放入以下​​Java 代码中:

然后我用这个类启动 Java 应用程序。

然后我将一些测试比特币发送到相关地址:

如果我去http://localhost:3002/tx/068c377bab961356ad9a3919229a764aa929711c68aefd5dbd4c7c348eef3406,我会看到交易细节。

交易页面截图

但是,侦听器(onCoinsReceived方法)中的断点永远不会激活。

我如何需要修改我的代码和/或我用来发送测试 BTC 的命令,以便当该账户收到钱时,onCoinsReceived调用方法?有什么地方可以告诉我Wallet或者NetworkParameters我想连接到本地主机吗?

我正在使用 0.15.10 版的 bitcoinj-core。

更新1:

我修改了 docker-compose.yml并添加了以下端口映射:

然后我重写了init方法,以便我可以连接到 localhost 并指定端口:

LocalTestNetParams允许指定端口:

我尝试了所有上述端口netParams.setPort(50001);

在所有情况下,我都会收到以下消息kit.awaitRunning();

10.10.1.218似乎是由InetAddress.getLocalHost()in生成的org.bitcoinj.kits.WalletAppKit#connectToLocalHost

更新1:

我尝试使用network_mode: "host".

如果我将它添加node

运行时出现以下错误docker-compose up -d

如果我将它添加到electrumx部分中

我得到另一个错误:

更新 2:

如果我注释掉端口绑定,如

然后跑docker-compose up -d我得到

更新 3:我假设错误的根源是在我的 Java 代码中,我尝试连接到 ElectrumX 服务器而不是实际的比特币节点(nodein docker-compose.yml)。

更新 4:

我更改docker-compose.yml如下:

现在我收到不同的错误(此处提供完整日志):

更新 5:

有人建议(在现在删除的评论中)在应用程序的输出中有以下Peer does not support bloom filtering消息:

所以我尝试 fork 原始图像并更改bitcoin.conf文件以启用 Bloom 过滤:

当我运行时,docker build -t mentiflectax/bitcoind-custom-regtest:latest .我收到以下错误消息(可以在此处找到部分剩余输出):

更新 6:正确的端口似乎是 19000。

如果我使用端口 19001,我会在之后收到以下错误kit.awaitRunning()

完整的日志输出可在此处获得。