问题标签 [segwit]

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 回答
1524 浏览

java - 使用 bitcoinj(纸钱包)生成隔离见证地址和私钥

可以使用以下使用bitcoinj 主分支的代码生成有效的旧比特币密钥对:

这将创建一个可用的传统 base58 编码的公共地址和私钥,例如1ERzRYYdbibaQt2kuNfgH8spuoqQxYkwQbL3AuZ2vNt11ac2xSi6AYwzXyftqSVPcSuHNdTsSuRfknXvoRtWzF相应地。

问题是如何执行相同的操作来获取隔离见证密钥对

我查看了bitcoinj 文档,但找不到任何用于直接作为 segwit 生成地址的 API。

通过查看测试segwit 拉取请求,我发现以下代码(附加到上面的代码)会产生一个 segwit 地址(即以 , 开头的3地址31uLnxKteEYa2u1vgWyVPkTpVfUGduCV82

我的理解是上面的代码应该用于多重签名场景,因此我不确定这是否是从单个私钥派生隔离见证地址的正确方法。这是生成纸质隔离见证钱包的正确/可靠/安全代码吗?

另外,有没有办法使用 bitcoinj 为私钥添加 BIP38 密码保护?该类BIP38PrivateKey仅具有从现有 base58 表示中解密 BIP38 密钥的方法,但没有用于 BIP38 密码加密的方法。

0 投票
2 回答
2055 浏览

regex - 新的 BCH 正则表达式是什么意思?

BCH 正则表达式最近(在 API 中)更新为:"address_regex": "^([13][a-km-zA-HJ-NP-Z1-9]{25,34})|^((bitcoincash:)?(q|p)[a-z0-9]{41})|^((BITCOINCASH:)?(Q|P)[A-Z0-9]{41})$"

这是隔离见证的事情吗?

我知道现在说地址可能以“bitcoincash:”或“BITCOINCASH:”开头,但这是一回事,还是Coinbase内部的一些名称?

0 投票
1 回答
109 浏览

java - BitcoinJ walletTemplate P2WPKH 发送付款不起作用

我曾尝试在bitcoinJ lib 中使用 WalletTemplate 子项目。我已经尝试过 p2pkh 发送,它们工作正常。但后来我尝试进行 P2WPKH 付款,但失败并显示以下错误消息

这种行为在commit之前不存在。所以我不确定如何处理自此更改以来引入的更改。我还创建了 github issue以获取更多信息,但我还没有得到任何回复。我在另一个项目中尝试了 bitcoinj 的 walletTemplate 之外的代码,如下所示:

任何帮助,将不胜感激。谢谢

0 投票
0 回答
282 浏览

php - 如何通过 php 在比特币测试网上发送比特币交易?

"bitwasp/bitcoin": "^1.0"我在 GitHub 上找到了一个 PHP 比特币包,它的星数最多。我试图通过 tesnet 将一些比特币从隔离见证地址发送到另一个隔离见证地址,按照示例 https://github.com/Bit-Wasp/bitcoin-php/blob/1.0/examples/tx.fund.p2wpkh.php实际工作

不幸的是,我在这里遇到了一些错误。

我该如何解决这个问题?或者有一个完全可以找到的示例?

0 投票
1 回答
102 浏览

python - 如何根据助记词验证 bitcoinlib 创建的钱包?

我使用 bitcoinlib 创建了一个钱包。钱包被命名为“my-awesome-wallet55”。当我尝试使用新生成的助记词打开我现有的钱包时,我期望的行为是异常或安全错误,但是钱包无论如何都会打开。我可以手动检查私钥以创建自己的安全检查,但不应该尝试使用错误的密钥打开现有钱包失败吗?否则似乎是一个很大的安全问题。

有没有使用 bitcoinlib 验证钱包的标准方法?根据我在这里的情况,似乎有人只需要知道钱包的名称就可以完全访问它。

更新:

在收到 Frank 的问题后,我更新了代码以尝试发送交易:

结果如下: