gobtcsign
简洁高效的比特币交易签名工具库,帮助开发者快速构建、签名和验证比特币交易。
gobtcsign
使用 golang 进行 BTC/DOGECOIN 签名,能帮助开发者探索 BTC 区块链知识。
go get github.com/yyle88/gobtcsign
以下是 gobtcsign
提供的核心功能:
- 交易构建:提供高效的交易构建工具,支持添加多个输入输出,并自动计算找零金额。通过动态手续费调整功能,用户可以灵活控制交易费用。
- 交易大小预估:依据输入、输出数量及脚本类型,预估交易的虚拟大小(vSize)。这有助于开发者根据实际情况设置合适的手续费率。
- 交易签名:兼容多种地址类型,包括 P2PKH、P2SH 和 SegWit。开发者可以使用私钥快速完成交易输入的签名。
- 签名验证:提供签名校验功能,确保交易签名的正确性,避免因签名问题导致交易被网络拒绝。
- 交易序列化:支持将签名后的交易序列化为十六进制字符串,便于直接广播至比特币网络。
以下是 gobtcsign
依赖的关键模块:
- github.com/btcsuite/btcd:提供比特币核心协议的实现,是构建和解析交易的基础。
- github.com/btcsuite/btcd/btcec/v2:用于椭圆曲线加密操作和密钥管理,支持生成和验证数字签名。
- github.com/btcsuite/btcd/btcutil:处理比特币地址的编码与解码操作,并提供其他常用的比特币实用工具。
- github.com/btcsuite/btcd/chaincfg/chainhash:提供哈希计算和链相关的常用功能。
- github.com/btcsuite/btcwallet/wallet/txauthor:用于构建交易的输入输出,并自动处理找零。
- github.com/btcsuite/btcwallet/wallet/txrules:定义比特币交易规则,包括最小手续费计算和其他限制条件。
- github.com/btcsuite/btcwallet/wallet/txsizes:用于计算交易的虚拟大小(vSize),便于动态调整手续费。
该项目几乎没有引用除 github.com/btcsuite
以外的其它包,即便如此,当您要签名交易时,依然不应该直接使用该项目,避免添加恶意代码收集您的私钥。正确的做法是fork项目,最正确的做法是拷贝代码到自己的项目里,而不要引用不可信的依赖,而且要严格审查代码,控制服务器的出入网白名单。
- 初始化交易参数:定义交易输入(UTXO)、输出目标地址及金额,同时设置 RBF(Replace-By-Fee)选项。
- 预估交易大小与手续费:调用库中的方法估算交易大小,依据实时费率设置合理的手续费。
- 生成待签名交易:根据输入的交易参数,构建待签名交易。
- 签名交易:使用对应私钥完成交易的数字签名。
- 验证与序列化:验证签名的有效性,并将交易序列化为十六进制字符串以供广播。
- 私钥安全性:请勿在生产环境中暴露私钥,仅在开发或测试环境中使用演示数据。
- 手续费设置:根据交易大小和网络拥堵情况合理设置手续费,避免交易因手续费过低被矿工拒绝。
- 找零地址:在构建交易时,请确保将剩余金额转回自己的地址作为找零,以避免资金损失。
- 网络参数:在使用 TestNet 或 MainNet 时,请正确配置网络参数(如
chaincfg.TestNet3Params
)。
通过 gobtcsign
,开发者可以快速高效地实现比特币交易相关功能,助力区块链应用开发。
通过 gobtcsign
简单介绍比特币 BTC
的入门知识,以下是个简单的入门教程。
使用任意 离线的代码 创建测试钱包。 例如使用代码 创建钱包
注意不要使用在线的网页创建钱包,否则私钥容易被别人悄悄收集。
区块链的钱包创建是离线的,你能使用任意你觉得趁手的离线工具生成你的钱包(任何通过网页在线创建私钥的行为都是耍流氓)
测试币水头龙,在网上多找找总会有的,让水龙头给自己弄点测试币,这样自己就有了所谓的UTXO啦
通过水龙头给的UTXO就可以发交易
当然实际上还是需要你具备其它能力,比如爬块技术,这样才能得到你的UTXO,否则还是不能发交易的
通过区块链浏览器 和 程序代码,你能够手动发交易,但自动化发交易还是依赖于爬块。
由于狗狗币是通过LTC衍生来的,而LTC是通过BTC衍生来的,因此这个包也能用于狗狗币的签名
至于莱特币签名,没有尝试过,假如需要就试试看吧。
该包中有些狗狗币签名的样例,这是因为狗狗币的出块速度快,只几分钟就能达到6个块的确认高度,做实验或者测试相对比较便捷。 而BTC的确认达到6个块需要1小时甚至更久些,在做开发时就不太方便测试和迭代逻辑。 但BTC的资料多些,也更主流,有利于学习区块链相关的知识。 DOGE纯的模仿BTC的,逻辑99%都是互通的,因此在开发时,测试DOGE逻辑也能发现BTC的问题。 因此同时接BTC+DOGECOIN也是不错的选择。
注意不要忘记找零否则将会有重大损失,详见下面的案例。
这笔交易发生在区块高度818087里面。 哈希值:b5a2af5845a8d3796308ff9840e567b14cf6bb158ff26c999e6f9a1f5448f9aa 发送方发送了139.42495946 BTC,价值5,217,651美元,而接收方仅收到了55.76998378 BTC,价值2,087,060美元。 剩余的83.65497568 BTC则是矿工费用,价值3,130,590美元。
这是一笔巨大的损失,需要特别重视,避免重蹈覆辙。
数字货币都是骗局
都是以空气币掠夺平民财富
没有公平正义可言
数字货币对中老年人是极不友好的,因为他们没有机会接触这类披着高科技外衣的割韭菜工具
数字货币对青少年也是极不友好的,因为当他们接触的时候,前面的人已经占据了大量的资源
因此妄图以数字货币,比如稍微主流的 BTC ETH TRX 代替世界货币的操作,都是不可能实现的
都不过是早先持有数字货币的八零后们的无耻幻想
扪心自问,持有几千甚至数万个比特币的人会觉得公平吗,其实不会的
因此未来还会有新事物来代替它们,而我现在也不过只是了解其中的技术,仅此而已。
该项目仅以技术学习和探索为目的而存在。
该项目作者坚定持有“坚决抵制数字货币”的立场。
gobtcsign
是一个开源项目,发布于 MIT 许可证下。有关更多信息,请参阅 LICENSE 文件。
欢迎通过提交 pull request 或报告问题来贡献此项目。
如果你觉得这个包对你有帮助,请在 GitHub 上给个 ⭐,感谢支持!!!
感谢你的支持!
祝编程愉快! 🎉
Give me stars. Thank you!!!