最热门的3个基于Java的Blockchain库

本文介绍了Java开发人员可以使用的三个顶级Blockchain库:BitcoinJ用于比特币交互,Web3j专注于Ethereum并提供智能合约包装器,而HyperLedger Fabric是适合企业的区块链框架,强调智能合约管理和安全性。
摘要由CSDN通过智能技术生成

原文:The Top 3 Blockchain Libraries for Java Devs
作者: Boyko Dimitrov
译者:Teixeira10

【译者注】在本文中,作者介绍了三个使用区块链的Java项目,以及每个项目适用的场合,供开发者根据自己的需求进行选择。以下为译文:

大家应该都听说过比特币、以太币或其他加密货币,这些名字在新闻中经常出现,但是作为Java开发人员,你们知道如何轻松地与Blockchain技术进行交互吗?下面是可以利用Blockchain的三大Java项目。这个列表是基于GitHub存储库的星序排列的。非常感谢你的评论和意见。

BitcoinJ

你有没有觉得这个名字很有描述性呢?如果你想知道如何创建一个比特币钱包,并且管理节点之间的事务,那么你应该尝试一下BitcoinJ。这个项目有一个不断扩大的社区,里面包含非常好的文档资料,这对每个开发人员都是非常有利的。当然,作为一个试图获得声望的开源项目,它也存在一定的局限性。现在已经有几个已知的开放漏洞的安全问题,以及可扩展性问题。不过,如果你想了解比特币协议是如何运作的,这个项目将是非常有帮助的。个人意见:这并不适用于生产应用。

Web3j

一个词——Ethereum(以太币),这是基于尖端技术的第二大加密货币。Web3j项目允许你使用Ethereum区块链,同时不必为平台编写集成代码。同样,核心功能是创建钱包,管理事务,以及智能合约包装器。Ethereum项目的一部分是一种称为Solidity的特殊语言,它是创建智能合约的实际标准。如果你想避免使用智能合约的底层实现细节,那就使用Web3j的智能合约包装器。如果这对一名开发人员来说还不够,那我需要告诉你,它包含很多好的文档和大量的例子,这也是使web3j成为我个人最爱的原因。

HyperLedger Fabric

HyperLedger Fabric是企业会用到的。Linux基金会的框架是区块链解决方案的主干。所以无论你想创建一个简单的PoC,还是一个生产应用程序,它都是一个强大的工具。该项目正在由Linux基金会成员积极组织开发。它的重点是创建和管理智能合约。主要特点是:

管理共享机密信息的渠道
支持政策事务
一致地向网络中的对等节点交付事务

如果你在软件区块链堆栈中包括了HyperLedger Fabric,那么我的建议是熟悉其他的HyperLedger项目。根据你的需要,可以选择各种不同的HyperLedger项目,这些项目将保证一个连贯的、可扩展的、易于维护的区块链基础设施。对于许多人来说,区块链将改变整个互联网,难道你不想成为其中的一部分吗?

与其他Java区块链项目一起分享、评论和扩展这个列表!

bitcoinj项目富含完整demo 此项目使用maven构建,不会使用maven的同学,查看项目pom.xml文件,并在http://mvnrepository.com/下载相应的依赖jar包. demo:bitcoinj签名交易 /** * @param unSpentBTCList 未花费utxo集合 * @param from 发送者地址 * @param to 接收者地址 * @param privateKey 私钥 * @param value 发送金额.单位:聪 * @param fee 旷工费.单位:聪 * @return 签名之后未广播的原生交易字符串 * @throws Exception */ public static String signBTCTransactionData(List unSpentBTCList, String from, String to, String privateKey, long value, long fee) throws Exception { NetworkParameters networkParameters = null; // networkParameters = MainNetParams.get(); //测试网络 networkParameters = TestNet3Params.get(); Transaction transaction = new Transaction(networkParameters); DumpedPrivateKey dumpedPrivateKey = DumpedPrivateKey.fromBase58(networkParameters, privateKey); ECKey ecKey = dumpedPrivateKey.getKey(); long totalMoney = 0; List utxos = new ArrayList(); //遍历未花费列表,组装合适的item for (UnSpentBTC us : unSpentBTCList) { if (totalMoney >= (value + fee)) break; UTXO utxo = new UTXO(Sha256Hash.wrap(us.getTxid()), us.getVout(), Coin.valueOf(us.getSatoshis()), us.getHeight(), false, new Script(Hex.decode(us.getScriptPubKey()))); utxos.add(utxo); totalMoney += us.getSatoshis(); } transaction.addOutput(Coin.valueOf(value), Address.fromBase58(networkParameters, to)); // transaction. //消费列表总金额 - 已经转账的金额 - 手续费 就等于需要返回给自己的金额了 long balance = totalMoney - value - fee; //输出-转给自己 if (balance > 0) { transaction.addOutput(Coin.valueOf(balance), Address.fromBase58(networkParameters, from)); } //输入未消费列表项 for (UTXO utxo : utxos) { TransactionOutPoint outPoint = new TransactionOutPoint(networkParameters, utxo.getIndex(), utxo.getHash());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值