加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

只用120行Java代码写一个本身的区块链

发布时间:2019-06-06 10:24:11 所属栏目:建站 来源:浮云-Mignet
导读:区块链是今朝最热点的话题,宽大读者都传闻过比特币,或者尚有智能合约,信托各人都很是想相识这统统是怎样事变的。这篇文章就是辅佐你行使 Java 说话来实现一个简朴的区块链,用不到 120 行代码来显现区块链的道理! 用不到120行 Java 代码就能实现一个自
副问题[/!--empirenews.page--]

只用120行Java代码写一个本身的区块链

区块链是今朝最热点的话题,宽大读者都传闻过比特币,或者尚有智能合约,信托各人都很是想相识这统统是怎样事变的。这篇文章就是辅佐你行使 Java 说话来实现一个简朴的区块链,用不到 120 行代码来显现区块链的道理!

“用不到120行 Java 代码就能实现一个本身的区块链!” 听起来不行思议吧?有什么能比开拓一个本身的区块链更好的进修实践要领呢?那我们就一路来实践下!

由于我们是一家从事互联网金融的科技公司,以是我们回收假造资产金额作为这篇文章中的示例数据。各人可以先为本身想一个数字,后头我们会用到。

 通过本文,你将可以做到:

1、建设本身的区块链

2、领略 hash 函数是怎样保持区块链的完备性的

3、怎样缔造并添加新的块

4、多个节点怎样竞争天生块

5、通过赏识器来查察整个链

6、全部其他关于区块链的基本常识

可是,对付好比事变量证明算法(PoW)以及权益证明算法(PoS)这类的共鸣算法文章中将不会涉及。

同时为了让你更清晰得查察区块链以及块的添加,我们将收集交互的进程简化了,关于 P2P 收集好比“对等收集”等内容将在未来的文章中讲授。

让我们开始吧!

配置

我们假设你已经具备一点 Java 说话的开拓履历,以及maven项目构建履历。在安装和设置 Java 开拓情形后之后,我们新建maven项目,在pom中增进一些依靠:

  1. <!-- 超小型web框架 --> 
  2.        <dependency>  
  3.            <groupId>com.sparkjava</groupId>  
  4.            <artifactId>spark-core</artifactId>  
  5.            <version>${spark.version}</version>  
  6.        </dependency> 

Spark-web Framework是一个基于jetty的超小型框架,我们用它来写http会见的哀求处理赏罚。

  1. <dependency>  
  2.            <groupId>commons-codec</groupId>  
  3.            <artifactId>commons-codec</artifactId>  
  4.            <version>${commons.codec.version}</version>  
  5.        </dependency> 

这个通用包拥有险些全部加解密算法及通例操纵

  1. <dependency>  
  2.            <groupId>com.google.code.gson</groupId>  
  3.            <artifactId>gson</artifactId>  
  4.            <version>2.8.2</version>  
  5.        </dependency> 

Google的json包,虽然你可以行使你喜好的其他json包。

最后,增进log相干的包

  1. <!-- log start -->  
  2.        <dependency>  
  3.            <groupId>log4j</groupId>  
  4.            <artifactId>log4j</artifactId>  
  5.            <version>${log4j.version}</version>  
  6.        </dependency>  
  7.        <dependency>  
  8.            <groupId>org.slf4j</groupId>  
  9.            <artifactId>slf4j-api</artifactId>  
  10.            <version>${slf4j.version}</version>  
  11.        </dependency>  
  12.        <dependency>  
  13.            <groupId>org.slf4j</groupId>  
  14.            <artifactId>slf4j-log4j12</artifactId>  
  15.            <version>${slf4j.version}</version>  
  16.        </dependency>  
  17.        <!-- log end --> 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读