测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | WTFPL |
发布最后发布 | 2016年1月 |
由Oleg Andreev维护。
依赖项 | |
OpenSSL-Universal | = 1.0.1.16 |
ISO8601DateFormatter | >= 0 |
CoreBitcoin在Objective-C中实现了比特币协议,并提供了许多附加API,以创建出色的应用程序。
CoreBitcoin特意尽可能直接在Objective-C中实现,同时依赖OpenSSL的程度较低。这给了每个人学习比特币的机会,并且使得所有Mac和iOS开发者都能扩展和改进比特币协议。
注意,“Bitcoin Core”(以前称为BitcoinQT或“Satoshi 客户端”)是一个完全不同的项目。
另见 发布说明。
查看所有待办事项。
目标是实现与比特币相关的所有有用功能,并将它们组织在一个功能强大的库中。欢迎提交补丁。
要编解码地址,请参阅BTCAddress。
执行密码学操作时,请使用BTCKey,BTCBigNumber和BTCCurvePoint。 BTCKeychain实现了BIP32(分层确定性钱包)。
要获取未花费的币和广播交易,请使用以下第三方API之一:BTCBlockchainInfo(blockchain.info)或Chain-iOS(推荐)。
要完整地进行钱包工作流程,请参阅BTCTransaction+Tests.m(获取未花费输出,组合交易,签名输入,验证和广播)。
要使用多签名脚本,请参阅BTCScript+Tests.m:组合和解锁多签名输出。
所有以+Tests
结尾的其他文件都值得查看,因为它们包含有用的示例代码。
将以下内容添加到Podfile中
pod 'CoreBitcoin', :podspec => 'https://raw.github.com/oleganza/CoreBitcoin/master/CoreBitcoin.podspec'
在终端中运行
$ pod install
包含头文件
#import <CoreBitcoin/CoreBitcoin.h>
如果您想使用类别,请包含不同的头文件
#import <CoreBitcoin/CoreBitcoin+Categories.h>
克隆此存储库并构建所有库
$ ./update_openssl.sh
$ ./build_libraries.sh
将iOS或OS X框架(位于binaries/iOS或binaries/OSX)复制到您的项目中。
包含头文件
#import <CoreBitcoin/CoreBitcoin.h>
此外,还有一个包含头文件的原始通用库(.a),位于binaries/include中,如果您出于某种原因需要它们。框架和二进制库已内置OpenSSL。如果您的项目中包含不同版本的OpenSSL,请考虑使用CocoaPods或CoreBitcoin的原始源代码。
要添加您的悬赏,在此处添加一行(或编辑现有的一行),提交一个拉取请求,并向以下地址捐款。您的捐款仅保留用于该悬赏。在支付之前,我会联系您检查实现是否可接受。
我们喜欢 Swift 并设计代码兼容 Swift。这意味着使用现代枚举、更喜欢初始化器而不是工厂方法、避免模糊的 C 语言特性等。欢迎使用 Swift 使用 CoreBitcoin,如果您有问题,请提交错误报告。
Swift非常适合在其中编写加密(由于显式可选、泛型和第一类结构体),我们愿意重写整个CoreBitcoin以及OpenSSL的相关部分。不幸的是,由于不稳定,这使得一年或两年内做这个几乎不可能。然后,在API级别上使用仅Swift的功能意味着Objective-C代码无法使用CoreBitcoin。考虑到这一点,在短期内,我们将专注于与Swift兼容的Objective-C实现。当每个人都完全转向Swift后,我们将进行全面重写。
请随意打开问题、提交拉取请求或联系我们讨论如何操作。
遵循现有代码风格,使用 4 个空格代替制表符。方法在大括号的开头换行。没有行宽限制。
推特:@oleganza
发布到 CocoaPods
$ pod trunk push --verbose --use-libraries
请将您的捐款发送到这里:1CBtcGivXmHQ8ZqdPgeMfcpQNJrqTrSAcG。
所有资金仅用于悬赏。
您还可以向特定的悬赏捐赠款项。该金额将用于该悬赏并列举在上方。请联系Oleg安排。
在 WTFPL 下发布,但 OpenSSL 除外。如果您在法律文件中没有提到 CoreBitcoin,CoreBitcoin 的任何捐助者都不会将您告上法庭。为作者提供信誉和改进库是自愿的并非常受欢迎。祝您心情愉快。