主页 > tp钱包导入imtoken > 如何安装比特币钱包 北京荣硕智汇科技有限公司

如何安装比特币钱包 北京荣硕智汇科技有限公司

tp钱包导入imtoken 2023-01-30 06:17:41

发表于 20/07/2018 由 admin, 0 回复

关于区块链的自白——用C#对比特币区块链说一句

最近在看区块链和比特币的知识。 顺便简单研究了一下BitCoin的脚本语言,发现OP_RETURN命令后面可以接我想说的。 许多侧链、公证等都利用了这个特性。 ,可以在这个命令后面放一句话或者一个hash值,所以我也想试一试,看看能不能成功。

由于熟悉C#,所以使用了NBitcoin这个网上的.Net BitCoin的开源库。 下面是实现过程。

1.购买一定数量的比特币。

不用说,你可以在火币网和OKCoin等比特币交易所购买。 因为实验需要,所以不需要买很多。 几块钱到十几块钱,就够买更多的比特币了。 没关系,如果你以后留着,说不定还能增值呢。

2. 下载并安装Bitcoin Core,然后将在交易网站购买的比特币提取到本地比特币钱包中。

接下来,我们需要安装官方的比特币钱包BitCoin Core,官网下载地址为: 最好选择Windows安装版本,下载安装完成后,打开bitcoin-qt.exe,系统会新建一个比特币对于我们的收款地址,当然我们也可以自己新建一个比特币收款地址。 在“文件”->“收款地址”下,可以看到当前钱包的收款地址。

image

在比特币交易网站,选择比特币提现,输入我们本地钱包的收款地址,即可将网站上的比特币提现到本地钱包。 需要注意的是,比特币的每笔交易都需要交易手续费,交易手续费的多少决定了转账到本地的速度。 根据我之前的取现经验,我设置的手续费是0.0001 BTC,约合人民币80美分。 在这种情况下,需要 2 天才能到达帐户。 因此,要想快速到账如何安装比特币钱包,就不得不提高交易手续费。 .

3. 在 Bitcoin Core 中,导出私钥。

现在比特币已经存入我们本地的钱包账户,接下来就是导出本地钱包接收地址对应的私钥。 具体方法是打开“帮助”->“调试窗口”,在控制台的选项卡下,输入:

walletpassphrase 本地钱包密码 600

这条命令是解锁钱包,以便接下来可以导出密钥。

比特币钱包安装_比特币钱包提币要多久_如何安装比特币钱包

以我的接收地址“1DobCXYvc4xVSmdPdnZ6xUPGwetaSCma5C”为例,我们运行如下命令,BitCoin Core会输出该地址对应的密钥:

dumpprivkey 1DobCXYvc4xVSmdPdnZ6xUPGwetaSCma5C

保存这个密钥串,有了这个密钥,你就可以花收款地址里的比特币了,不要告诉别人! 当我们以编程方式创建交易时,我们将使用此密钥。

4.在VS中新建命令行程序,添加NBitcoin的引用。

在.Net 环境下,最好的比特币开发库是NBitcoin。 我们要创建一个新的交易,包括我们要放到区块链上的一句话,我们可以使用这个库来轻松完成。

在VS下新建一个控制台应用程序,使用nuget添加对NBitcoin的引用。

5.找到上次提款到比特币钱包的TransactionID,这是我们要新建交易的比特币的输入。

回到比特币钱包BitCoin Core,在主界面的“交易历史”选项卡中,可以看到上一次提现比特币的交易记录。

image

复制这个Transaction ID,我们可以在线查看这个Transaction的详细信息:

我们可以看到在这个交易中,有2个Output,其中我们的地址1DobCXYvc4xVSmdPdnZ6xUPGwetaSCma5C是第一个,也就是Index为0。

接下来,在C#中新建一个Transaction,并将这个事务作为新事务的输入:

复制代码

比特币钱包提币要多久_比特币钱包安装_如何安装比特币钱包

var blockr = new BlockrTransactionRepository(); 
Transaction inputTran = blockr.Get("0327f4669b3eea71ef351c8d89877b037fa1a270095426877d7961a8a4de5892");//0.00052 
Transaction payment = new Transaction(); 
payment.Inputs.Add(new TxIn() 
{ 
    PrevOut = new OutPoint(inputTran.GetHash(), 0) //前面通过网站查询,我们的Index是0 
});

复制代码

6. 在比特币钱包中新建一个接收地址作为我们交易的比特币接收方。

回到比特币钱包BitCoin Core,在“文件”->“接收地址”中,我们可以创建一个新的比特币接收地址,并将这个地址作为我们交易的输出。 在这里,我使用的地址是:18fNiqtV1gQPF9A5BwGis6VfX66R5Tjq7p

所以我们对应的C#语句是:

BitcoinAddress receiveAddress = new BitcoinPubKeyAddress("18fNiqtV1gQPF9A5BwGis6VfX66R5Tjq7p", Network.Main); 
            payment.Outputs.Add(new TxOut() 

比特币钱包提币要多久_比特币钱包安装_如何安装比特币钱包

{ Value
= Money.Coins(0.0004198m), ScriptPubKey = receiveAddress.ScriptPubKey });

在这里我需要解释一下我的比特币转账安排。 我输入的比特币是0.00052比特币,我打算将其中的0.0004198转入新创建的地址。 接下来还有一个output,就是放一句话的地方,我打算有意义的放0.0000001,Input和Output差0.0001001作为手续费!

7. 编码一个句子放在OP_RETURN之后,将这个脚本作为另一个输出。

最重要的部分就在这里,我们需要放入我们自定义的内容(总之一个Hash值即可),根据网上的文档(),后面可以跟80字节的内容,也就是说如何安装比特币钱包,如果是汉字,可以放40! 虽然没有微博的140字那么长,但对我们来说应该足够了!

这里就是我们放0.0000001比特币的地方,其实放0也是可以的! 因为英文比较容易被国外网站解码,所以我推荐使用ASCII编码英文。

复制代码

string text = "Input what you want to say!"; 
           var bytes = Encoding.ASCII.GetBytes(text); 
           payment.Outputs.Add(new TxOut() 
           { 

比特币钱包提币要多久_比特币钱包安装_如何安装比特币钱包

Value
= Money.Coins(0.0000001m), ScriptPubKey = TxNullDataTemplate.Instance.GenerateScriptPubKey(bytes) });

复制代码

8. 使用上面第3步导出的私钥对交易进行签名。

现在我们整个支付对象都有了输入和输出,剩下的就是对输入进行签名,也就是证明我有权使用1DobCXYvc4xVSmdPdnZ6xUPGwetaSCma5C地址的比特币。

BitcoinSecret pkBitcoinSecret = new BitcoinSecret("这里是私钥字符串"); 
payment.Inputs[0].ScriptSig = pkBitcoinSecret.ScriptPubKey; 
payment.Sign(pkBitcoinSecret, false);

9. 调用 Bitcoin Core 将我们的交易发布到网络。

至此,我们的工作已经完成,接下来就是等待矿工处理我们的交易了。 如果我们给的手续费高,可能会很快。

复制代码

using (var node = Node.ConnectToLocal(Network.Main)) //Connect to the node 

比特币钱包提币要多久_比特币钱包安装_如何安装比特币钱包

{ node.VersionHandshake(); //Say hello node.SendMessage(new InvPayload(InventoryType.MSG_TX, payment.GetHash())); node.SendMessage(new TxPayload(payment)); Thread.Sleep(10000); //Wait a moment }

复制代码

这里向网络发送交易调用BitCoin Core,因此必须确保BitCoin Core已开启。

发送成功后,我们可以在比特币钱包中看到多一条交易记录:

image

如果你吝啬一点手续费,给的很低,像这里,你得等2天甚至更长时间,交易才能被矿工写入区块链。

总结

好吧,就这么简单,我们只需要花费一点交易费,我们就可以把我们想说的话放到比特币区块链上。 放上去就意味着永远不会被删除,全世界的人都能看到。 是不是很酷? 感觉是科技宅的告白工具! 天下人纷纷告白,载入史册! 所以你一定要三思而后行,否则,如果你告白失败,或者成为前女友,这句话是绝对不会被删掉的。 以后怎么跟新女友解释? !

当然,我们也可以用这个函数来证明存在。 我写了一篇文章,拍了一张照片,或者其他数字化的东西,我们可以把这个数字化文件的Hash放在OP_RETURN后面,相当于向全世界宣布我此时有这个作品,以后其他人的时候需要我的证明,我可以把Hash值拿出来和区块链比对,证明我当时已经拥有了。

个人签名