Hyperledger Fabric 超级账本实战项目(一、二)

文章介绍了区块链的基本概念,包括hash、nonce和区块结构,提到了HyperledgerFabric的环境配置以及联盟链和私有链的特点。还详细阐述了智能合约的部署过程,使用Remix和Metamask在以太坊网络上的操作,以及前端如何通过web3.js获取合约实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

p1基础介绍

Fabric需要配置环境

hash概念:输入任何数据可以得到与其对应的hash值。发现不管data的长度是多少,它对应的hash长度是不变的;data也可以传空值,即空值也会对应一个hash;

nounce:是计算满足条件的随机数

区块:block+nonce+data+timestamp+previous hash->hash

blockchaindemo.io网址

nonce值:是满足某一区块难度的随机数

不同的peer(节点)数据是一样的,相当于不同的记账的村民

不是每一笔交易产生一个区块的,而是每10min产生一笔交易,所以一个区块里面可以有很多笔交易

前端可以通过web3.js的API直接获取合约的实例对象

chaincode链码就是智能合约

Ordering Service 排序服务默认有三种:Solo(单节点共识)、Kafka(分布式队列)、SBFT(简单拜占庭容错)

Hyperledger 是超级账本的意思

联盟链和私有链是不需要去挖的,只要节点之间达成共识就可以了

演示:在终端输入如下命令:

npm install blockchain-cli -g //安装所需要的包等

blockchain //创建创世区块

bc //即可以看到当前挖了有多少区块

mine "ab 100" //a给b转账100元,mine后面的是区块包裹的数据

然后可以通过bc来查看

下面是js代码来判断hash值是否有效

function isValidHashDifficulty(hash, difficulty){
 for(war i=0,b=hash.length;i<b;i++){
    is(hash[i]!='0'){
      break;
            }
        }return i>=difficulty;
  }

就是PoS工作量证明

p2公有链合约部署

可以通过remix、metamask(浏览器的钱包[一个狐狸那个])部署

每一笔交易后会返回一个合约的地址,相当于一个存储空间的地址。类在部署完会产生一个合约对象,可以把remix上的代码看作是图纸,当部署完之后会产生一个图纸所生产的产品(如:电脑),这个产品即为实例对象。

前端可以通过web3.js的API直接获取合约的实例对象

.sol是智能合约的程序,由remix编写

部署到Main Ethereum Network即公网需要花费以太币,所以可以部署到测试网络(KovanTestNetwork),可以从测试网络获得测试币,测试的网络与公网没有任何差别。

部署步骤:

首先在remix编写代码,然后切换到run->environment->Injected Web3,account是当前meta mask的钱包地址(地址中有代币)

然后点一下create,会弹出一个metamask钱包的窗口,部署合约的过程(就是上链)就是生产电脑的过程,需要花费代币,点击submit就可以部署成功(电脑已经生产成功),会返回一个地址,想查看其属性(电脑大小等属性)可以通过地址来查看

可以点击查看当前区块的相关信息,有交易的区块 hash 时间戳 合约地址

取区块链数据不需要花费gas,而部署才需要

点击contracts就可以按照要求顺序实现部署

超级账本就属于联盟链,一部分有权限,另外的没有权限,即只能由选定特定的节点来达成共识,来确权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值