由于其高TPS和作为区块链作为服务平台的行为,许多新创新者正在选择Hyperledger来部署他们的区块链业务。因此,在本博客中,我们将讨论使用node.js在Hyperledger中创建基于erc20的令牌链代码的方法。
为何选择ERC20?
ERC20是以太坊广泛测试和接受的,将其整合到Hyperledger中,可以轻松地为基于Hyperledger的任何令牌编写安全且可扩展的链码。
我们将在本教程中参考以下开源存储库。
注意:我们假设您已经熟悉Hyperledger结构,并且您的系统配备了启动Hyperledger开发的先决条件。如果没有,请参阅Hyperledger文档中的先决条件、关键概念和教程。
此存储库中的代码已在以下环境中进行了测试:
node:v8.9.3和v8.11.4
Hyperledger:v1.2
Docker:18.06.1-ce
Python:2.7.12
美股区块链板块涨幅进一步扩大:行情显示,美股区块链板块涨幅进一步扩大,SOS涨45%,第九城市涨超22%,嘉楠科技涨近20%。[2021/3/1 18:05:02]
Go:go1.9.3linux/amd64
curl:7.47.0
我们建议在适应代码的同时使用相同的版本。
确保先决条件安装正确后,请执行以下步骤:
cd?path/to/repository/foldercd?network
进入网络文件夹后,即可创建超级账本网络环境。它将分别为您创建2个组织,Orderer每个组织有2个对等组。
Housekeeping
如果这是您第二次运行本教程,或者您已成功运行任何其他基于HyperLedgerFabric的代码,那么我们建议您首先运行以下命令:
./buildERC20TokenNetwork.sh?down
它将要求确认:
Stopping?for?channel?'mychannel'?with?CLI?timeout?of?'10'?seconds?and?CLI?delay?of?'3'?secondsContinue??
声音 |中国通信工业协会高斌:“产业区块链化”为必由之路,数字资产领域将产生超级企业:金色财经报道,中国通信工业协会区块链专业委员会副主任委员高斌在接受采访时表示,区块链赋能实体经济,即通过区块链技术与思想,结合新技术(人工智能、大数据、云计算等)升级改造实体经济与数字经济来提高效率、降低成本的过程。“产业区块链化”是必由之路,并且区块链不仅要赋能实体经济,也要赋能数字经济。对于整个产业生态来说,最好的情况是企业与企业之间横向、纵向地形成生态,对企业成本最低、效率最高。但是当前并不能形成生态或是共同体,核心原因有两个,即信任问题和协作问题,区块链技术的出现完美的解决了以上两个问题。高斌认为,实体企业资产数字化将会实现其核心价值观表达、客户价值、社会价值的统一,这种企业经营模式,将诞生比肩BATJ的超级企业,在这个企业中,也许我们自己也是有股东利益的。总之我认为,未来数字资产领域将会出现超级企业。[2019/12/4]
按Y并继续。
注意:您可以使用以下命令检查Docker有多少个容器或卷正在运行:
dockerps
声音 | 央行科技司司长李伟?:区块链技术在推动数字创新发展方面潜力巨大:CF40特邀成员、中国人民银行科技司司长李伟今日在首届外滩金融峰会上表示,特别强调,区块链技术在推动数字创新发展方面潜力巨大,要深入研究区块链技术,要推动区块链与实体经济深度融合,解决中小企业融资难、银行风控难、部门监管难等问题。(科创板日报)[2019/10/28]
dockervolumels
如果使用脚本很难关闭容器和卷,请尝试运行以下命令:
dockernetworkprune
dockervolumeprune
dockerrm-f$(dockerps-aq)
令牌网络设置
完成Housekeeping后,您就可以使用以下命令启动网络了:
执行可能需要一些时间。但是,如果您在终端中看到以下日志,则表示它已成功执行,您的网络已准备就绪。
使用crypto-config.yaml文件在您的网络目录中名为crypto-config的文件夹中为HyperLedger的每个实体创建了所需的证书。
动态 | 中企通宝发展区块链技术旨在服务实体经济:据东南网消息,在近日举行的2018金融科技峰会上,中企通宝数据管理副总裁练海翔进行了题为《区块链技术服务实体产业》的主题演讲,他在演讲中表示:“我们主要是想为传统企业提供工具,打造区块链技术产业集群,并且成为区块链解决方式的提供商。”
?
?[2018/9/11]
创建了channel.tx,genesis.block,Org1MSPanchors.tx和Org1MSPanchors.tx。
它还为以下内容创建了Docker容器和卷:
peer0andpeer1orOrg1
peer0andpeer1ofOrg2
orderer
CLI
chaincode
使用dockerps和dockervolumels检查它们。我们还在Org1和Org2之间创建了一个频道名称mychannel,每个组织的同伴都是该频道的一部分。然后在每个组织的peer0上安装我们的链代码并实例化我们的链代码,命名为mycc。您可以使用以下方法查看相应对等/链代码的日志:
声音 | 朱啸虎:区块链要回归到创造价值:据腾讯科技报道,金沙江创投董事总经理朱啸虎表示,一直在看区块链,最近还谈了好几家区块链公司,说实话我还是没有看到特别大的应用点。现在基本还是以交易所和发币为主,还没有一个能够创造价值的东西出来,区块链要回归到创造价值,能给用户创造价值的钱我们愿意赚。[2018/7/12]
docker?logs??//?type?peer?and?then?tab?to?see?your?optionsdocker?logs??//?type?dev?and?then?tab?to?see?your?options
注意:对于调试,您可以访问您的链代码和对等日志dockerlogs<按TAB查看选项>;如果您没有看到链代码的容器,那么实例化我们的令牌链代码就会出现问题。
我们的代币
现在我们的chaincode已经启动并运行,让我们尝试一些getter和setter函数来更好地理解它。为此,我们需要输入我们创建的cli容器。
docker?exec?-it?cli?bash
你将会看到以下结果:
:/opt/gopath/src/github.com/hyperledger/fabric/peer#
getter函数
一旦进入了cli,就可以调用simpletoken中提供的getter函数。我们将逐一讨论您可以访问的每一个:
获得所有权人
此函数将返回令牌合同的所有者。现在是MSPID实例化了契约,您可以在这里看到它。
peer?chaincode?query?-C?mychannel?-n?mycc?-c?'{"Args":}'Org1MSP
这里,mychannel是我们的通道名称,mycc是我们的chaincode的名称,如您所见,org1msp是我们chaincode的当前所有者。
getName
此函数将返回令牌合同的名称。它在实例化合同时被设置为简单令牌,您可以在这里看到它。
peer?chaincode?query?-C?mychannel?-n?mycc?-c?'{"Args":}'Simple?Token
如您所见,SimpleToken是我们当前的令牌名称。
getSymbol
此函数将返回我们的令牌合约的符号。在实例化合同时将其设置为SMT,您可以在此处查看
peer?chaincode?query?-C?mychannel?-n?mycc?-c?'{"Args":}'SMT
如您所见,SMT是我们当前的令牌符号。
getTotalSupply
此函数将返回令牌合同的总供应量。在设置之前,它默认为0。您可以在这里找到所需的逻辑。
peer?chaincode?query?-C?mychannel?-n?mycc?-c?'{"Args":}'0
如你所见,0是我们目前的总供应量。
isMintingAllowed
此getter返回存储在Hyperledger上的IsMintingAllowed布尔值。它默认为未定义,直到设置一次。您可以在这里找到所需的逻辑。
peer?chaincode?query?-C?mychannel?-n?mycc?-c?'{"Args":}'undefined
正如你所看到的,isMintingAllowed现在是未定义的。一旦稍后设置,它将返回true或false。
getAllowance
此getter返回令牌所有者为SpenderMSPID设置的津贴值。它将“inputthemspidtoken”owner作为第一个参数,将“mspidofspender”作为第二个参数。在设置之前,它默认为0。
peer?chaincode?query?-C?mychannel?-n?mycc?-c?'{"Args":}'0
如你所见,getallowance现在是0。稍后设置后,它将返回float。我们还要检查一下还有没有其他组合,看看它是否返回0。
peer?chaincode?query?-C?mychannel?-n?mycc?-c?'{"Args":}'0
getBalanceOf
最后一个getter是getbalanceof函数,它返回我们输入的每个mspid的令牌平衡。如果mspid没有任何令牌平衡,它也默认为0。
本文转载公众号:区块链研究实验室,专注区块链技术,产品社群,经济模型等全方位的知识体系输出,为大家带来不一样的社群学习体验。欢迎联系作者微信加入社群:csschan1120??
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。