区块链技术和 Web3j 简介

区块链技术和 Web3j 简介

原文:https://medium.com/hackernoon/an-introduction-to-blockchain-technology-261ffb8de

我现在承认,对于区块链、T2 和 T3 的科技世界以及这一切意味着什么,我是一个完全的新手。直到今天,我还没有听说过以太坊(Ethereum),智能合同只是指我检查我的租赁协议条款是否包括自动滚动延期,比特币这个词可以让我在我的精神障碍出现时一片空白。

我今天参加了研讨会,以打开我的思维,了解更多关于技术的世界,而不是让我自己被我为自己创造的 Java 泡沫所安慰,在那里我真正经历的最令人兴奋的事情是 RX observables 的引入和 GitLab 的最新功能发布。我变得自满,我需要鞭策自己。我照做了。

今天是我最近记忆中最不舒服的一天。我讨厌不理解事物,至少是落后课程一个小时。尤其是当我看到其他人都在进步的时候。毕竟,那一定是我,对吗?我不够聪明,无法理解。我知道我不是唯一一个这样想的人,所以我现在就在这里告诉你——打住。就是最近大家都在谈论的那个鬼鬼祟祟的小声音。

放松,深呼吸。每个人学习的速度不同。虽然这对我来说不寻常,但也是一次令人谦卑的经历。虽然我可能跟不上班上的其他同学,但我仍然对我学到的知识感到高兴。因此,这里有一个区块链技术,比特币实现,以及如何使用以太坊和 Solidity 来测试一个利用 Web3j 库的简单 Java 程序的简要概述,从一个非常新鲜的角度。

区块链技术 它是什么,我们为什么需要它?

Image courtesy of Blockchain Technologies

区块链是一个单向链接的块列表,每个块包含许多事务。它提供了一个分散的、不可变的数据存储,可以在用户网络中使用,创建资产,并作为记录所有交易的共享黑皮书。每笔交易都可以方便地查询,为所有相关方提供了更大的透明度和信任。

最初的创作者,或创作者,是匿名的,区块链背后的真正动机可以说是未知的。然而,事实证明,对于许多问题来说,这是一个绰绰有余的解决方案。

  1. 多个客户(个人或组织)拥有一份拷贝的数据,这些数据又需要整合和验证
  2. 共享组织间数据
  3. 数字资产注册
  4. 身份管理(如密码识别)
  5. 显著的物联网利益(利益相关方可以从区块链获取数据)

进入分布式分类帐技术。这是这种性质的所有技术的总称,区块链是其中的一个实现。这由三个识别因素组成:

  1. 智能合同
  2. 支持公共和私有网络
  3. 共识机制

区块链实现

区块链技术最广为人知的实现是比特币。创建于 2008 年,这是区块链技术的突破,通常被称为区块链 1.0。比特币是一种以交易为中心的实现方式,允许在没有财团的情况下进行匿名交易,同时仍然提供所有交易的基本分布式分类账。

存在其他实现,如数字资产控股公司和 Ripple,但是这些实现更侧重于财务,而不是以个人消费者为中心设计的实现。IBM 也有 Hyperledger 项目,但同样地,这更适合于大型组织,而不是小型公司或个人。

最后,我们有以太坊。

以太坊

以太坊是区块链进化的下一步。它创建于 2013 年,被认为是区块链 2.0,允许运行任意代码来完成计算过程,而不仅仅是记录交易。它是一个图灵完全虚拟机,作为公共区块链运行。

以太是以太坊的燃料,它与一个钱包和地址文件相关联,每个账户都有自己的地址。然而,每个用户可能有多个帐户,因此尽管一个唯一的帐户属于一个用户,但无法知道有多少其他 id 链接回同一个用户。

那么如果以太是以太坊的货币,你如何获得它?

获得乙醚

有两种方法可以获得以太坊使用的以太。首先是买它:

  1. 从其他用户处购买
  2. 比特币基地
  3. BTC 市场

二是挖掘它。

  1. mainnet = >比特币的主网络,需要专用的 GPU
  2. testnet = >快速使用你的 CPU,通过水龙头。科万,林克比,罗普斯顿。通过 Geth 或奇偶校验连接到以太坊测试网络

智能合约

智能合约帮助你以透明、无冲突的方式交换金钱、财产、股票或任何有价值的东西,同时避免了中间人的服务。这是一份电脑化的合同,会受到数据和方法的影响。

  1. 代码和数据位于给定地址的区块链上
  2. 事务调用函数并导致状态转换

它们通过以太坊馈入交易的三个步骤。

交易

以太坊交易只有三个简单的步骤;转移以太网,部署智能合同,并通过调用智能合同来完成。我们来看看实际情况如何?

Web3j

Web3j 是由康纳斯文森创建的一个库,为 Java 和以太坊集成提供了一个轻量级的解决方案。它充当解释层,使用契约模型来执行操作,并且能够连接到任何提供的以太坊主机节点。

GitHub 上的示例项目

在我参加的研讨会上,我得到了一个非常简单的例子,Web3j 库与 Java 和一个本地以太坊节点以及 Rinkeby 测试网络一起工作。我不想在这里讲述太多关于如何连接到服务器的细节,仅仅是七页的笔记和截图!

但是,请查看我的 GitHub 页面以了解项目的运行情况,并获取详细的教程。您可以亲自尝试一下,了解如何为 Infura 设置帐户、连接到测试网络、从 Rinkeby 水龙头获得以太网,以及在 Rinkeby EtherScanner 中查看本地 Java 应用程序中执行的事务。作为一个完全不知所措的人,我可能在记笔记上做得太过火了,但它帮助我通过把它写在文本中并接触实践实验室来澄清一些事情。希望它能帮助像我一样迷茫的人开始理解这一切。

结论

区块链技术对我来说仍然是一个深远的谜。然而,我现在已经尝到了它的含义,并努力克服了最初的理解,我想我可能已经准备好深入(慢慢地)研讨会涵盖的更复杂的主题。随着时间的推移,我会了解更多,并开始看到这一新的和潜在的革命性技术的真正力量。

祝我好运!


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除