hyperledger Composer如何实现转账功能
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章将为大家详细讲解有关hyperledger Composer如何实现转账功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。/* * @param {org.
千家信息网最后更新 2025年12月01日hyperledger Composer如何实现转账功能
这篇文章将为大家详细讲解有关hyperledger Composer如何实现转账功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
/* * @param {org.example.mynetwork.SetupDemo} setupDemo * @transaction */async function initializationFun(setupDemo) { const NS = "org.example.mynetwork"; const factory = getFactory(); //创建三个参与者 var zhangsan = factory.newResource(NS, "Person", 'zhangsan001') zhangsan.name = "张三"; zhangsan.balance = 100; var lisi = factory.newResource(NS, "Person", 'lisi') lisi.name = "李四"; lisi.balance = 100; var wangwu = factory.newResource(NS, "Person", 'wangwu') wangwu.name = "王五"; wangwu.balance = 100; const partRegistry = await getParticipantRegistry(NS+'.Person') await partRegistry.add(zhangsan); await partRegistry.add(lisi); await partRegistry.add(wangwu); //创建资产 var car = factory.newResource(NS, "Car", '川A0001') car.personId = zhangsan.id; car.color = "red" const assetRegistry = await getAssetRegistry(NS+'.Car'); await assetRegistry.add(car)}/** * Sample transactiontransaction TransactionCar{ * @param {org.example.mynetwork.TransactionCar} transactionCar * @transaction */async function transactionCarFun(transactionCar){ const NS = "org.example.mynetwork"; const from = transactionCar.from; const to = transactionCar.to; const price = transactionCar.price; from.balance = from.balance + price; to.balance = to.balance - price; const partRegistry = await getParticipantRegistry(NS+'.Person') await partRegistry.update(from); await partRegistry.update(to); debugger const car = transactionCar.car; car.personId = to.id; if(!car.transactionCars){ car.transactionCars = [] } car.transactionCars.push(transactionCar) const assetRegistry = await getAssetRegistry(NS+".Car"); await assetRegistry.update(car);}/** * Write your model definitions here */namespace org.example.mynetworkparticipant SampleParticipant identified by participantId { o String participantId o String firstName o String lastName}asset SampleAsset identified by assetId { o String assetId --> SampleParticipant owner o String value}transaction SampleTransaction { --> SampleAsset asset o String newValue}event SampleEvent { --> SampleAsset asset o String oldValue o String newValue}participant Person identified by id { o String id o String name o Double balance}abstract asset Vehicle identified by licensePlate { o String licensePlate o String color} asset Car extends Vehicle { o String personId o TransactionCar[] transactionCars optional}transaction SetupDemo {}transaction TransactionCar{ o Double price o String car o String from o String to}/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//** * Sample access control list. */rule Default { description: "Allow all participants access to all resources" participant: "ANY" operation: ALL resource: "org.example.mynetwork.*" action: ALLOW}rule SystemACL { description: "System ACL to permit all access" participant: "org.hyperledger.composer.system.Participant" operation: ALL resource: "org.hyperledger.composer.system.**" action: ALLOW}rule NetworkAdminUser { description: "Grant business network administrators full access to user resources" participant: "org.hyperledger.composer.system.NetworkAdmin" operation: ALL resource: "**" action: ALLOW}rule NetworkAdminSystem { description: "Grant business network administrators full access to system resources" participant: "org.hyperledger.composer.system.NetworkAdmin" operation: ALL resource: "org.hyperledger.composer.system.**" action: ALLOW}{ "$class": "org.example.mynetwork.TransactionCar", "price": 10, "car": "川A0001", "from": "zhangsan001", "to": "lisi"}关于"hyperledger Composer如何实现转账功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
篇文章
功能
转账
更多
不错
实用
三个
内容
参与者
文章
知识
资产
张三
李四
王五
参考
帮助
有关
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
邯郸办公系统软件开发价格表
1.7.10开服务器
网络安全法的特点有哪些
小虎互联网科技
济宁仓库管理erp软件开发
软件开发之增量模式
宿迁固定资产管理软件开发
软件开发公司如何接外包
泰拉瑞亚服务器怎么打开商店
甘肃移动网络技术岗待遇
数据库考试报名2022年
广州网络安全等保认证
什么叫网络安全产业园
易数言使用外部数据库
全国网络安全宣传周活动
云服务器怎么配置ftp网站
中小学 网络安全视频
大学建议选计算机网络技术专业吗
ce为什么改变不了数据库
网络安全重大事件处理方案
如何看原神账号是什么服务器
计算机网络技术的大趋势
软件开发与设计有前途吗
大梦数据库官网
入门软件开发
开源xml数据库
服务器cpu性能天梯图2022
msi适合做软件开发么
查看数据库的语句是()
数据库多大才有并发