您的位置:网站首页 > DAO/DAPP钱包软件 > 正 文 比特币

Google开源项目BCCAPI(BitCoin客户端API)

【作者:fjbit】 来源:原创 日期:2011-11-4 0:06:44 人气: 标签:BCCAPI 【打印】

BCCAPI简介

BCCAPI(BitCoin客户端API),允许你创建一个轻量级安全的JavaBitcoin客户端发送和接收Bitcoins 。BCCAPI连接到服务器保存块链,并跟踪客户的代表客户的钱包余额 。服务器的公共密钥在网络上,并没有详细的位置定义,使用客户钱包里的自有资金 。更多的信息,什么是BCCAPI维基 。

是什么BCCAPI?

简而言之BCCAPI(位投币客户端API),允许您创建一个轻量级的Java安全Bitcoin客户端。BCCAPI连接到服务器保存块链,并跟踪客户的钱包余额。服务器的公共密钥的客户知识,并没有位置,花客户的钱包自有资金。

基于BCCAPI为客户的特点:

  • 带宽。客户端只发送或接收数据时:
    • 在日志
    • 获取其资产
    • 将公共密钥添加到其钱包
    • 发送bitcoins

  • 安全
    • 只有客户持有的钱包的私钥。
    • 服务器仅持有相应的公共密钥,并可以不花从钱包里的资金。
    • 管理私钥取决于客户端上执行。BCCAPI提供一个开源的Java库,它提供客户端:
      • 确定性源于强烈的种子中的所有键的功能。这样就减少了,客户端需要处理32字节的敏感数据量。
      • 功能产生强烈的种子,从任意长度的口令和盐 。种子产生scrypt几轮keystretching。Scrypt是旨在对硬件蛮力攻击比替代功能,如PBKDF2或bcrypt安全得多 。(http://www.tarsnap.com/scrypt/scrypt.pdf)这个过程需要相当数量的小型设备上的时间,但可能是一个一次性的过程,客户端初始化的一部分。
      • 种子使用任意长度的密码进行加密的功能。如果有人获得一个复制的加密种子,他们将不得不暴力破解盗窃被发现之前,资金外流。
    • SimpleClient客户端,使用这些函数来实现一个功能齐全,安全,重量轻Bitcoin客户端是一个开放源码的例子。其他客户可以选择使用随机生成的种子,而种子比从口令生成,并结合备份种子的一种手段。这是完全由客户端。
    • 所有的客户端 - 服务器通信使用HTTPS保护。
  • 登录
    • 客户端有一个可确定性就像钱包私钥派生的私人帐户的关键。当登录到服务器的客户端呈现其公共帐户的关键,并获得一个随机的挑战。客户端哈希的挑战和标志使用其私人帐户的关键。签署的挑战是返回到服务器,以及与公众的帐户关键。在第一次登录,创建一个新的帐户,这是与客户端的公共帐户的关键相关联的。唯一需要创建一个帐户是一个公开密钥,并使用相应的私钥对随机挑战的能力,使签名。没有其他的个人信息或电子邮件地址。
  • 发送硬币
    • 当发送硬币用于下列过程:
      1. 客户端请求从服务器的Bitcoins数量的发送硬币表格和接收地址。
      2. 服务器收集来自客户的钱包未动用交易资金,并建立一个无符号的交易的任何更改发送回客户端的地址之一。连同任何交易的交易资金,它是在发送硬币的形式发送到客户端插入输出。
      3. 客户端验证,资金的输入,输出资金,并接收匹配什么要求。
      4. 客户端的迹象交易,并把它发送到服务器。
      5. 服务器验证签名和交易bitcoin网络广播。
  • 备份
    • 如果口令+盐的方法是用来生成种子有没有需要备份客户端上的任何东西。如果加密的种子文件丢失,可以重新从初始口令和盐在不同的设备。
    • 如果一个随机生成的种子是用确定性的密钥生成,只有32字节的种子需要得到一劳永逸备份。种子可以选择在离开客户端加密。

BCCAPI提供上述所有记录以及容易阅读的源代码,是一个完美的比赛,如果你想要写一个重量轻安全的Andr​​iod应用程序发送和接收Bitcoins。

在服务器端

BCCAPI服务器运行在Rackspace,并能处理许多同时发生的帐户。每个帐户的服务器拥有一个公共密钥,这是与所有的公共密钥添加到该帐户的钱包。服务器连接到Bitcoin网络,并不断跟踪块链,和所有簿记必须保持最新的钱包。

常见问题

  • 问:服务器有我的钱包呢?
  • 答:BCCAPI基本上分成两个你的钱包。
    1. 一个公共的一部分,这是在服务器端,它允许服务器保持跟踪你的钱包的交易输入和输出。为此,它需要知道你的钱包的公钥。
    2. 一个私人的一部分,这是在客户端上。客户端部分是一个私钥的控制,它允许你签订交易和花bitcoins。
  • 问:能否在服务器花我bitcoins吗?
  • 答:服务器是在没有签署与你的钱包关联交易。
  • 问:服务器可以做什么邪恶?
  • 答:虽然服务器可以不花你的bitcoins,有一些邪恶的服务器可以做:
    1. 服务器可以躺在钱包平衡,让​​你相信这是高于或低于它到底是什么。
    2. 服务器可以使你认为你已经派出一些bitcoins,而它只是没有提出的交易网络。
    3. 服务器可以尝试让你签署一项交易,输入是已经花。在这种情况下的交易将是无效的和网络的拒绝。你不会失去任何bitcoins。
    4. 服务器可以尝试让你签署一项交易,将钱别人比你要求。客户端总是验证,交易签约前预期的收件人,所以在这种情况下,客户端将拒绝交易。
    5. 服务器可以离线,再也不会回来。
在所有上述情况下,你会不高兴,想撤离所有bitcoins到别的地方。由于服务器没有对你bitcoins的控制,这是没有问题的。所有的私钥确定性产生从你的密码和盐。您只需运行一个工具,可生成一个普通bitcoin客户端wallet.dat文件。
  • 问:我在哪里可以得到这个工具?
  • 答:它的bccapi.jar一部分。寻找com.bccapi.tool.WalletExporter.java,它打印出所有在纯文本的私钥。接下来的事情就是导入到一个wallet.dat文件。这可以使用pywallet。简单易用的工具,是正在进行中 。
  • 问:上的地址,我可以使用的数量是否有限制?
  • 答:现在你可以同一个帐户关联的地址数限制为10。这是限制在服务器端的压力。
  • 问:这对我的服务成本是什么?
  • 答:没有。运行和维护的服务器端不费钱,但希望捐款可以从打桩法案。展望未来,我们可能会增加选择连接到一个优先级的服务器,它提供了更快捷的服务支付一小笔费用。

尝试与SimpleClient BCCAPI

SimpleClient是一个基于文本的bitcoin客户端的BCCAPI上实现。这是写在Java和开源。您找到SimpleClient BCCAPI源(com.bccapi.example.SimpleClient.java)内的一个例子。

SimpleClient使用一个确定的钱包的做法,所有键都产生一个口令和盐,这两者都进入了首次推出的客户端是基于。创建一个种子文件,这是在当前工作目录中,从口令和盐,这是使用密码加密。每当SimpleClient推出,它会问该密码,解密的种子,并生成需要的键。

SimpleClient只是许多可能的Bitcoin客户,你就可以建造BCCAPI顶部之一。然而,它功能齐全,安全,leightweight,和一个很好的起点,如果你想使自己的客户。

自己建设的一切

所需软件:颠覆的JDKANT

  1. 获取代码:SVN检出http://bccapi.googlecode.com/svn/trunk/ bccapi
  2. 编译的jar:CD bccapi&蚂蚁清洁bccapi - JAR
  3. jar文件就设在这里:bcca​​pi /构建/ JAR / bccapi.jar

使用预构建的JAR

软件需要JREJDK

  1. 下载bccapi.jar

Bitcoin测试网络测试

这是使用测试bitcoins有没有真正的价值。对于testnet SimpleClient需要能够沟通,​​互联网的使用目的端口444(HTTPS端口1)。

  1. 从这样的命令行运行:Java的JAR bccapi.jar testnet
  2. 按照说明
  3. 使用选项3,看到你的bitcoin地址。
  4. Bitcoin Testnet Fauchet和一些硬币转移到您的地址之一。
  5. 按照屏幕上的交易Testnet座浏览器 。请注意,测试网可能生成块是在没有长期。如果这是一个问题,请使用如下所述的封闭testnet。
  6. 一旦蜱使用SimlpeClient查询余额

禁区BCCAPI Bitcoin测试网络测试

由于官方Bitcoin testnet矿工人数变化很多,有可能是长时间没有生成块。显然,这可能是一个问题,测试时,您的Bitcoin客户端。为缓解此,我们提供了一个采矿权的不断,一个小的封闭测试网络。Bitcoins这个网络上不能使用官方Bitcoin testnet。要访问的封闭testnet SimpleClient需要能够传达​​给互联网的使用目的端口445(HTTPS端口2)。

  1. 从这样的命令行运行:Java的JAR bccapi.jar closedtestnet
  2. 按照说明
  3. 使用选项3,看到你的Bitcoin地址。

Bitcoin地址发送一些测试硬币推出的另一个文件夹中!Simpleclient和使用“ASD”作为你的密码和种子。这会给你访问测试Bitcoins与社区共享的钱包。请不要空共享的钱包,别人可能会想一些。如果它是空的给我发电子邮件(ja​​n.moller @ gmail.com),我会填满它。

Bitcoin生产网络测试

这是使用真正的价值与生产bitcoins。

  1. 从这样的命令行运行:Java的JAR bccapi.jar prodnet
  2. 按照说明
  3. 使用选项3,看到你的bitcoin地址。
  4. 将一些bitcoins使用官方bitcoin客户端所列出的地址之一。是的,你需要有一些真正的Bitcoins做到这一点。
  5. 按照屏幕上的交易座资源管理器
  6. 一旦蜱使用SimlpeClient查询余额

问题或意见

请给我一张字条:jan.moller @ gmail.com

返回顶部】【关闭窗口 风险提示:本站分享转载的信息均来自互联网,且仅供阅读参考,不作为具体投资的依据,据此入市,风险自担。本站所有内容涉及到的“货币”字眼需谨慎研判,我们维护各国法币的合法地位,同时数字资产具有货币的某些属性,目前是不能替代任何国家的法定货币的,请谨慎理解投资并严格遵守各国法律法规!详见本站[免责声明]。】
【读完这篇文章后,可否发表您的感受?】
0
0
0
0
0
0
0
0
本文网址:
安全联盟站长平台 互联网举办平台 公共信息安全网监 中国网安 赛门铁克安全响应中心