`

使用不同语言访问比特币类库bitcoinj进行比特币开发

阅读更多

对于需要广泛深入的理解bitcoinj,防止缓冲区溢出和Android手机可很好的应用,Java是一个很好的选择。但它也有老问题,冗长而且通常也不适合所有人。

本页详细介绍了其他编程开发语言如何使用bitcoinj。

Javascript

Javascript可以使用Java8中提供的Nashorn引擎与Java互操作。我们已经有了这方面的教程!查看入门指南,了解如何设置并查看一些示例。可以使用jjs工具从命令行运行访问Java库的Javascript程序。有些项目也提供Node.js API。

Kotlin/Scala

这些语言提供了良好的Java互操作性,并且有许多人将它们与bitcoinj结合使用。

Python

Python有许多粉丝,可以很有趣地进行原型设计。原始的Python实现不能与Java代码互操作,但我们可以通过另一种方式使用Jython获得访问权限。Jython是Python(2.x)的一个实现,它与原始语言/类库兼容,并提供了一个交互式解释器,就像普通的Python一样,用于探索和学习。只要你不依赖任何自定义的CPython扩展,你就可以直接运行常规Python应用程序,包括UNIX样式的可执行脚本。

为什么要这么做?主要是因为你可以像导入Python类库一样导入Java类库(来自org.bitcoinj.core导入Wallet)。你还可以获得更好的垃圾收集器和真正的多线程支持。

Ruby

与Jython类似,还有JRuby。像Jython一样,它在JVM上运行Ruby,具有相同的优点——一个出色的垃圾收集器,与Java代码互操作,真正的多线程支持等等。和Jython一样,唯一有问题的是依赖基于C语言的扩展函数模块,但是任何纯Ruby语言开发的内容都可以工作。

C#和.NET

bitcoinj可以通过IKVM使用。

C++

目前,C++使用bitcoinj的最简单方法是嵌入JVM并使用自动生成的JNI包。以下是此类程序的示例:

https://github.com/mikehearn/cppjvm/blob/master/mytest/bcj-hello-world.cpp

它依赖于名为CPPJVM的工具的分支,它映射了Java类文件,然后生成调用Java方法/读取字段的C++封装的对象。

该工具基于对某些根类的递归检索生成所需的所有类,如下所示:

https://github.com/mikehearn/cppjvm/blob/master/java/cppjvm/morkfile

因为WalletAppKit存在并且可以通过此类访问大多数bitcoinj API,所以大多数API都封装好了。如果你丢失了一个片段,你可以将你想要的类添加到该列表中,删除gen目录并重新运行make。

回调接口(WalletListenerPeerEventListener等)必须手动绑定,但不完整。如果你想使用C++中的bitcoinj,需要自己动手完成。幸运的是,它很容易,而且它们的代码实现并不长:

https://github.com/mikehearn/cppjvm/blob/master/mytest/native-listeners.h

https://github.com/mikehearn/cppjvm/blob/master/mytest/native-listeners.cpp

我们还在探索将bitcoinj源完全自动转换为C++,因此可以在没有任何JVM的情况下使用它。然而,这项工作处于较早的,目前在不太可用的阶段。

Objective-C

Hive团队维护着一个名为BitcoinKit的库,该库专为在MacOS X上构建钱包应用程序而设计。它不会暴露原始的bitcoinj API,而是在顶层提供自己的Objective-C API并使用JNI。

RoboVM可用于将Java编译为在iPhone上运行的ARM二进制代码,并且它具有适用于所有iOS框架的绑定。如果你想用bitcoinj编写一个iPhone应用程序,这将是一个很好的方法。

或者,BreadWallet是一个iOS SPV钱包,不是基于bitcoinj。代码不是作为库编写的,但可以提取核心代码并将其用于其他目的。

Lisp

biteasy.com上的块浏览器是用Clojure编写的,这是一种在JVM上运行的Lisp。它直接使用了bitcoinj。

我建议你浏览我们的区块链教程和区块链技术博客,深入了解区块链,比特币,加密货币,以太坊,和智能合约。

  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。

这里是原文

 

分享到:
评论

相关推荐

    比特币 价格 历史数据 2010年7月-2024年2月

    比特币 价格 最高价 最低价 开盘价 收盘价 交易量 历史数据 2010 年7月-2024年2月 比特币 价格 最高价 最低价 开盘价 收盘价 交易量 历史数据 2010年7月-2024年2月 比特币 价格 最高价 最低价 开盘价 收盘价 交易...

    区块链技术分享 区块链技术应用-比特币介绍 谈谈未来的钱-比特币 共27页.pptx

    与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通...

    比特币 - 以太坊价格数据集 BTC - ETH(2014-2024,5K+ 记录)CSV

    该数据集提供比特币和以太坊的历史每日价格信息。它包括从 2014 年 1 月 1 日到现在的比特币每日收盘价,以及从 2017 年 1 月 1 日到现在的以太坊的每日收盘价。对于任何对分析加密货币价格趋势、执行时间序列预测或...

    基于Paddle构建简单神经网络比特币价格预测

    【作品名称】:基于Paddle构建简单神经网络比特币价格预测 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 基于...

    比特币白皮书:一种点对点的电子现金系统(中文版)

    文件格式:Word 总页数:17 目录: 1. 简介 2. 交易(Transactions) 3. 时间戳服务器(Timestamp server) 4. 工作量证明(Proof-of-Work) 5. 网络 6. 激励 7. 回收硬盘空间 8. 简化的支付确认(Simplified Payment ...

    基于GARCH模型比特币的VaR和ES计算R语言

    以BTC-USD数据为例,基于GARCH模型,分析计算了比特币的VaR(风险价值 )与ES(期望损失)。同时也可以计算其他资产的VaR与ES,代码便于模仿,直接替 换即可。 即使没有R语言基础的也可以模仿,同时代码中有中文注释,...

    (源码)基于Python和Qt框架的比特币钱包管理系统.zip

    本项目是一个基于Python和Qt框架开发的比特币钱包管理系统,旨在为用户提供一个安全、便捷的比特币存储和交易平台。通过该系统,用户可以管理自己的比特币地址、进行交易、查看交易历史以及进行钱包备份和恢复等操作...

    基于LSTM预测比特币和黄金价格走势的综合决策模型源码+数据+项目说明.zip

    基于LSTM预测比特币和黄金价格走势的综合决策模型.zip 基于LSTM预测比特币和黄金价格走势的综合决策模型.zip 基于LSTM预测比特币和黄金价格走势的综合决策模型.zip 基于LSTM预测比特币和黄金价格走势的综合决策模型....

    比特币0.9.2版编译中文手册.pdf

    【比特币0.9.2版编译中文手册】 在IT领域,比特币是一种去中心化的数字货币,基于区块链技术,由中本聪所创建。比特币0.9.2版本是比特币客户端的一个...对于想要深入研究比特币技术和开发的人员,这是必不可少的步骤。

    比特币:一种点对点电子货币系统.pdf

    与传统的电子支付方式不同,比特币的设计核心在于通过密码学原理而非信任机制来保障交易的安全性和不可逆性,从而有效降低了交易成本、提高了效率,并为小额交易提供了可能性。 #### 交易机制与双重支付问题 传统...

    比特币历史价格数据集.zip

    《比特币历史价格数据集》是针对数字货币领域,特别是比特币(Bitcoin)进行数据分析的重要资源。这个数据集包含了比特币与美元的汇率变化,对于研究加密货币市场动态、投资策略分析以及预测模型构建具有重大价值。 ...

    比特币10年价格数据(2014-2024).zip

    自2009年比特币诞生以来,在市场情绪、政策变化、技术进步等多重因素共同作用下,它经历了频繁的大幅价格波动,这些波动不仅体现了投资者对比特币价值的认知变化,同时也映射出全球经济环境和技术发展的脉络。...

    Go语言代码-比特币技术

    比特币(Bitcoin)是一种基于点对点(P2P)技术的数字货币,由一位自称中本聪的人提出,通过密钥和密码学技术确保交易的安全性和匿名性。 贴合企业实战讲解比特币技术。 结合技术资料和相应源码学习更快捷。

    比特币背后的密码学原理

    比特币体系实际使用的非对称算法是椭圆曲线加密(ECC),它可以提供更高的安全性和效率。 非对称加密算法的应用可以带来巨大的变化,例如: 1. 在不安全的环境中传递敏感信息成为可能。 2. 多方通信所需密钥数量...

    基于LSTM预测比特币和黄金价格走势的综合决策模型.zip

    基于LSTM预测比特币和黄金价格走势的综合决策模型.zip 基于LSTM预测比特币和黄金价格走势的综合决策模型.zip 基于LSTM预测比特币和黄金价格走势的综合决策模型.zip 基于LSTM预测比特币和黄金价格走势的综合决策模型....

    区块链技术学习-go语言开发

    为了便于理解,不同的程序语言方向的技术人员使用不同的语言根据中本聪比特币系统的源码机制从原理上实现了不同语言版本的比特币系统。所以你看到有Java,Python,Golang等各种版本的比特币系统。 C/C++的优势在于可以...

Global site tag (gtag.js) - Google Analytics