顶尖技术预测专家已将区块链列为未来十年具有彻底改变我们世界的潜力的十大新兴技术之一,因此现在投入时间学习是非常值得的。如果您是一位具有 Java 背景的开发人员,并且希望快速掌握区块链技术,那么本文将为您提供入门所需的基本信息。
区块链是一个庞大的领域,可能会让人感到难以应对。它与其他软件技术不同,因为它具有一个平行的非技术领域,涉及投机、诈骗、价格波动、交易、首次代币发行 (ICO)、加密货币、比特币至上主义、博弈论、人类贪婪等等。本文将忽略区块链的这一面,而完全专注于您需要了解其技术方面的知识。
区块链基础
无论区块链的编程语言和实现细节如何,您都需要对其理论基础有一个基本的了解,然后才能在其上构建。我发现比特币和以太坊是您需要了解的第一批也是最重要的技术。这两个项目有几个共同点:它们在区块链领域引入了新的东西,在该领域拥有最高的市值,并且拥有该领域最大的开发者社区。
大多数其他区块链项目——无论是公共的还是私有的、无需许可的还是许可的——都是比特币或以太坊的分支,并试图以某种方式通过进行某些权衡来改进它们的缺点。 如果您想了解区块链,那么学习比特币和以太坊就像在大学期间学习网络、数据库理论、消息传递、数据结构和编程语言课程一样。 了解这两种区块链技术如何运作将打开您通往区块链世界的大门。
在尝试使用区块链技术做任何工作之前,我建议学习比特币和以太坊的技术基础。 碰巧的是,我最推荐的两本书都是由 Andreas M. Antonopoulos 撰写的。
另一本很好地涵盖以太坊开发的书是 Roberto Infante 的 构建以太坊 Dapps。
面向 Java 开发者的区块链项目
最终,区块链是现有技术与受网络效应推动的人类行为的一种新组合。 如果您来自技术背景,那么构建在您现有的知识基础上并了解区块链带来了什么是有意义的。 但是,大多数人知道的技术(例如 Java、.NET 和关系数据库)在区块链领域并不常见; 相反,区块链主要由服务器端的 C、Go 和 Rust 以及客户端的 JavaScript 占据主导地位。
也就是说,有几个区块链项目和组件是用 Java 编写的,Java 开发人员可以使用它们作为进入区块链的杠杆支点。
如果您是一位 Java 开发人员,通过阅读我上面推荐的书籍完成了您的背景研究,并且准备好亲自动手,请从以下用 Java 编写的流行开源区块链项目之一开始:
- Corda 可能是 Java 开发人员最自然的起点。 Corda 是一个基于 JVM 的项目,它构建在流行的且广泛使用的 Java 项目之上,例如 Apache Artemis、Hibernate、Apache Shiro、Jackson 和关系数据库。 它的灵感来自比特币,但具有业务流程、消息传递和其他熟悉的概念的元素。 您可以阅读 我作为 Java 开发人员的第一印象。
- Pantheon 是以 Java 编写的以太坊节点的完整实现。 它的创建专门是为了吸引来自 Java 生态系统的开发人员进入区块链世界。 它的创建者提供了一个 介绍演示文稿 和一个 入门视频。
- Bitcoinj 是比特币协议最流行的 Java 实现。 如果您喜欢直接从比特币开始,那么这就是要探索的 Java 项目。
- Web3j 是一个用于连接到以太坊节点的客户端库(而 Corda 和 Pantheon 是完整区块链节点实现的示例)。 这是一个非常 文档完善 且活跃的项目,可以轻松地与以太坊兼容节点进行通信。 我为它创建了一个 Apache Camel 连接器,您可以 阅读有关。
- Hyperledger Fabric Java SDK 是最流行的企业区块链项目之一 Hyperledger Fabric 的全功能 Java SDK。
- FundRequest 是一个用 Java 编写的最终用户应用程序。 虽然上面的项目是客户端或节点的示例,但 FundRequest 是一个在以太坊网络之上实现的完全用 Java 编写的开源融资平台。 它是如何实现一个完整的基于区块链的项目并与以太坊网络交互的一个很好的例子。
- Eventeum 是一个 Java 项目,可以帮助您监视以太坊网络并将事件存储在 Kafka 上。 它解决了与区块链网络集成时的一些最常见的挑战。
如果您准备好开始使用区块链,请转到 GitHub 并使用上面列出的项目之一。 其余的将会随之而来。 未来是开放的和去中心化的。
1 条评论