blockChain.zip

  • g1_882232
    了解作者
  • 15.7KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-04 04:06
    上传日期
基于Java实现的,简单区块链技术。作为区块链学习的小demo,可以进行参考。内容主要是Java基础、加密技术以及理解区块链的原理
blockChain.zip
内容介绍
package com.neu.blockChain; import java.util.ArrayList; public class NoobChain { public static ArrayList<Block> blockchain = new ArrayList<Block>(); public static int difficulty = 5; public static void main(String[] args) { //add our blocks to the blockchain ArrayList: System.out.println("Trying to Mine block 1... "); addBlock(new Block("Hi im the first block", "0")); System.out.println("Trying to Mine block 2... "); addBlock(new Block("Yo im the second block",blockchain.get(blockchain.size()-1).hash)); System.out.println("Trying to Mine block 3... "); addBlock(new Block("Hey im the third block",blockchain.get(blockchain.size()-1).hash)); System.out.println("\nBlockchain is Valid: " + isChainValid()); String blockchainJson = StringUtil.getJson(blockchain); System.out.println("\nThe block chain: "); System.out.println(blockchainJson); } public static Boolean isChainValid() { Block currentBlock; Block previousBlock; String hashTarget = new String(new char[difficulty]).replace('\0', '0'); //loop through blockchain to check hashes: for(int i=1; i < blockchain.size(); i++) { currentBlock = blockchain.get(i); previousBlock = blockchain.get(i-1); //compare registered hash and calculated hash: if(!currentBlock.hash.equals(currentBlock.calculateHash()) ){ System.out.println("Current Hashes not equal"); return false; } //compare previous hash and registered previous hash if(!previousBlock.hash.equals(currentBlock.previousHash) ) { System.out.println("Previous Hashes not equal"); return false; } //check if hash is solved if(!currentBlock.hash.substring( 0, difficulty).equals(hashTarget)) { System.out.println("This block hasn't been mined"); return false; } } return true; } public static void addBlock(Block newBlock) { newBlock.mineBlock(difficulty); blockchain.add(newBlock); } }
评论
    相关推荐
    • 区块链java-node.js:VjV
      简单的Binance连接器 指示 ... 1. nodejs目录中的Node JS项目 1.1要求 在您的操作系统上下载并安装Node.js 从这里下载node.js安装程序,[ ] 安装此脚本所需的node.js软件包。 npm install npm install ...
    • JAVA区块链项目实战视频教程
      课程分享——JAVA区块链项目实战视频教程,非常不错的一套课程,欢迎大家下载学习。
    • java android区块链
      java写的简单区块链区块链技术是一项比人工智能更具革命性的技术,人工智能只是提高了人类的生产力,而区块链则将改变人类社会的生产关系,它将会颠覆我们人类社会现有的协作方式。了解和掌握区块链相关知识和技术...
    • 区块链:一个Java区块链应用程序
      区块链:一个Java区块链应用程序
    • JAVA区块链项目
      Java实现区块链代码。 有问题联系QQ88234213 。 里面有比特Coin教程
    • 区块链java简单的demo
      原来看到一个python版本的dome下载下来边理解边转换成了java代码 有助于java理解区块链
    • BSN区块链服务Java链包
      BSN官网只有go语言链码包,此版本为Java语言开发,可直接上传使用
    • 区块链技术java小案例
      通过Java语言让你认识最基础的区块链使用,以及区块链的简单思路
    • JAVA区块链项目实战视频课程
      JAVA区块链项目实战视频课程分享下载,完整版,提供源码! 全国首套,基于java区块链实战教程。目的是让更多的java编程者了解区块链,掌握区块链开发。
    • JAVA区块链实战教程
      国内第一套以java语言讲解区块链原理的教程,包含实际项目和代码。让java从业人员,快速了解区块链区块链原理。