问题标签 [nbitcoin]
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.
cryptography - NBitcoin 和助记符标准
我对比特币开发很陌生,所以请原谅我......
我在 .Net 控制台应用程序中使用 NBitcoin 使用助记符生成主密钥,然后派生分层密钥。这是我正在使用的代码:
这是我得到的助记符,以及使用“m/0/0”路径从主密钥派生的公共地址:
助记词:干棕驱车大放光拥抱硬报借折铁
路径:m/0/0/: 1GcchMaHAN1XRQsoi8gPg8TShqzN4sNGvu
我测试了使用助记符重新创建我的密钥,并且始终能够在我的控制台应用程序中派生出与预期完全相同的密钥。
出于好奇,我想看看我是否可以将这个助记词导入现有的钱包软件并获得相同的密钥。由于 Exodus 钱包使用标准的十二字助记符,我启动它并使用相同的助记符生成我的钱包。但是没有一个键匹配!我导出了我的公钥,并确保它与主节点的“m/0/0”路径相同。如您所见,它不是匹配项:
使用相同的助记符从 Exodus 导出的公钥:
助记词:干棕驱车大放光拥抱硬报借折铁
地址: 1DMDJ266gxMCJiTcWk5MZFbfxxx4Ss3URN
路径: m/0/0
我还测试了 Jaxx 上的助记符以及 Android 上的 Coinomi 钱包,它派生了与 Exodus 相同的密钥。
所以我完全糊涂了。我唯一能想到的是,这些钱包使用的标准熵在我的实现中缺少吗?
我的问题是,如何使用 NBitcoin 创建与 Exodus、Coinomi 和 Jaxx 等钱包相同的助记符标准?
c# - 我无法使用 QBitNinjaClient 获得交易结果
我是 C# 和区块链的初学者。
我正在使用“用 C# 编程区块链”来研究区块链。我尝试按照本书运行此源代码:
但由于异常,它不起作用。它说“找不到方法'System.Net.Logging.get_On'。”,所以我试图找到“System.Net.Logging”,但我在nuget中找不到任何名为“System.Net.Logging”的包。组织。
我怎么解决这个问题?
环境:macOS Sierra 10.12.6,Visual Studio for Mac[Community] 7.2(Build 636)
c# - 如何使用多个 TxIn(交易输入)广播 NBitcoin 交易
我在 TestNet 上运行。我正在尝试添加多个交易输入 TxIn() 以便从这些输入中花费。当我广播我的交易时,它返回成功,但我在区块浏览器上看不到它。我已经用一个 TxIn() 处理了一个事务,当我广播它时,它是成功的,我可以在区块浏览器上查看它。我已经在这上面超过 2 天了。将非常感谢您的帮助
c# - 没有私钥如何验证(NBitcoin)
我正在使用 NBitcoin nuget 包。我尝试创建私钥和公钥(地址)。之后,我尝试签署一些消息,然后使用 pub 密钥验证此签名。但是 NBitcoin ,用于使用具有私钥对象的 BitcoinSecret 对象进行验证。那么,为什么要使用这个对象来验证 NBitcoin?我如何在没有私钥的情况下验证签名,只使用地址(pubKey)、签名和消息?谢谢
c# - 如何获取/理解比特币交易 ID
我正在使用 c# 和 NBitcoin 编写我自己的 Programm。(阅读“编程区块链”一书)我可以很好地发送比特币,但非常复杂。这是由于我对交易 ID 缺乏了解。
目前我需要从我的比特币中获取最后一个交易 ID。在这个 ID 的帮助下,我可以将这个比特币发送到其他地方。
这也是我的主要问题。我是否必须保存我收到的每个比特币的每个交易 ID?在这句话中,我使用“比特币”来表示任意数量的比特币。如果我有一个收到 2 个比特币 (1+1) 的地址并且我现在想花费 1.5 个比特币怎么办?如果我花了一个“完整”的硬币,我可以忘记交易 ID,只需要保留剩下的一半?
一个更清楚地表达我的困惑的例子:我有一个地址(ABCDEFGH),我收到了 10 个比特币,其中有 10 笔不同的交易(交易 ID 1-10)因为我没有参与发送(有人把它送给我)我不知道这 10 个交易的交易 ID。我如何以编程方式获取它们?获得所有 TransactionID 后,我现在是否必须将它们全部写下来并跟踪它们以用于我的 ABCDEFGH 地址以备将来支出,或者有什么方法可以说“花费 x 数量的这个地址”?
从这本书中,我以某种方式了解到,我每次交易都需要花费 1 个比特币。因此,如果我想发送 0.3 比特币,我必须将 0.3 比特币发送给接收方,然后将 0.7 比特币返回给我?!?!
有没有办法像这样对它进行编程:
交易(MoneyAmount,RecieverAddress,SenderAddress);
c# - 区块链和比特币中的 TransactionId
你好亲爱的所有朋友,
我是关于区块链和比特币的新手。我正在努力从书籍和示例资源中学习。
我必须在发送硬币之前填写 transactionId 值吗?如果是这样,为什么?我认为transactionId应该出现在成功交易的末尾(也许我错了,我不知道)。如果我必须在处理时间声明一个 transactionId,我如何找到合适且正确的值?
在下面的例子中,给出例子的作者在哪里找到这个值e44587cf08b4f03b0e8b4ae7562217796ec47b8c91666681d71329b764add2e3
?
非常感谢。此致,
c# - 使用 NBitcoin 的 NodesGroup 请求完整块
我将https://github.com/MetacoSA/NBitcoin用于一个简单的 C# 应用程序,它只下载比特币区块链。
我已经实现的是通过以下方式下载块头NodesGroup
:
我发现下载完整块(带有事务)的唯一方法是使用单个Node
:
所以这是我的问题:有没有一种方法可以直接从连接的节点并行下载完整的块(带有交易)NodesGroup
,就像我对块头所做的那样?
提前致谢!
c# - 如何使用 NBitcoin 从 ExtPrivKey 获取比特币私钥
所以,我正在尝试使用 NBitcoin 汇一些钱,有一个步骤我失败了,那就是创建比特币秘密来签署交易,我有地址和 ExtPrivKey,但我没有任何运气签名它,任何建议,这是我下面的代码。
c# - 为什么命令行 C# 交互式 (csi.exe) 忽略显式程序集参考?
Microsoft (R) Visual C# Interactive Compiler version 2.9.0.63208
Windows 7 64 bit
NBitcoin 4.1.1.68
====
System.Security.Cryptography.Algorithms
4.3.0.0 版有一个SHA256Managed
我想在 C# Interactive ( csi.exe
) 中使用的类。
我使用命令将该程序集添加到 GAC gacutil -i [path_to_dll]
。我csi
使用/r:[path_to_dll_dir]/System.Security.Cryptography.Algorithms.dll
命令行选项启动。
最重要的是,在csi
开始之后,我还做了一个#r "[path_to_dll]"
参考。腰带和吊带类型的东西。我知道。但我想我希望过度杀戮会迫使它做正确的事情。
我的应用程序使用来自第三方库的类。以下代码几乎是从我的应用调用的第三方方法中逐字复制的。如果我在中运行以下代码csi
,它可以正常工作...
现在,事情就是这样。该第三方类定义了一个调用SHA256Managed.ComputeHash(byte[], int, int)
与上面的代码完全相同的方法。
为了便于讨论,我们将第三方类和方法称为Foo.m()
.
问题是,当我打电话给第三方Foo.m()
时csi
,csi
拒绝...
请记住,我已将 4.3.0.0 版加密算法程序集明确添加到 GAC 中。#r
另外,我用和明确引用了 dll /r:
。那么给了什么?
我可以在加载版本 4.0.0.0 程序集的FusLogVw
绑定日志中看到;csi
尽管我明确坚持使用 4.3.0.0 版本。System.Security.Cryptography.Algorithms
4.0.0.0 版没有SHA256Managed
类。
请帮我弄清楚如何csi
使用我告诉它使用的程序集?请记住,它对直接用csi
. 那么,为什么它没有为第三方库中完全相同的代码使用正确的汇编版本呢?