超级账本Fabric区块链用弹珠游戏Marbles 部署

2023-11-10

Marbles 演示

Marbles GitHub地址

关于 Marbles

  • 这个应用程序的基础网络是 Hyperledger Fabric,后者是一个 Linux Foundation 项目。您可能想查阅以下操作说明来稍微了解一下 Hyperledger Fabric。
  • 本演示旨在帮助开发人员了解链代码的基础知识以及如何使用 Fabric 网络开发应用程序。
  • 这是一个非常简单的资产转移演示。多个用户可以创建并相互转移弹珠。

    这里写图片描述

  • Marbles - 分支 v4.0 (Latest)(您将看到这个分支!)

    • 兼容 Hyperledger Fabric v1.0.1v1.0.0v1.0.0-rc1
    • 兼容 IBM Blockchain Bluemix 服务 - IBM Blockchain Platform - Enterprise 计划

应用程序背景

请大家集中注意力,这个应用程序将演示如何利用 Hyperledger Fabric 在许多弹珠所有者之间转移弹珠。
我们将在 Node.js 中使用一些 GoLang 代码完成此任务。
该应用程序的后端将是在我们的区块链网络中运行的 GoLang 代码。
从现在开始,这些 GoLang 代码将称为 ‘链代码’ 或 ‘cc’。
该链代码本身会创建一颗弹珠,将它存储到链代码状态中。
该链代码本身可以将数据作为字符串存储在键/值对设置中。
因此,我们将字符串化 JSON 对象,以便存储更复杂的结构。

弹珠的属性包括:

  1. ID(唯一字符串,将用作键)
  2. 颜色(字符串,CSS 颜色名称)
  3. 尺寸(int,以毫米为单位)
  4. 所有者(字符串)

我们将创建一个基于 Web 的用户界面,它可以设置这些值并将它们存储在区块链中。
这颗弹珠是在区块链存储(也称为账本)中以键值对的形式创建的。
为弹珠 ID,为一个包含(上面列出的)弹珠属性的 JSON 字符串。
与 cc 的交互是通过对网络上的一个节点使用 gRPC 协议来完成的。
gRPC 协议的细节由一个名为 Hyperledger Fabric Client SDK 的 SDK 处理。
请查看下图了解拓扑结构细节。

应用程序通信流

这里写图片描述

  1. 管理员将在他们的浏览器中与我们的 Node.js 应用程序 Marbles 进行交互。
  2. 此客户端 JS 代码将打开一个与后端 Node.js 应用程序的 Websocket 连接。管理员与该站点交互时,客户端 JS 将消息发送到后端。
  3. 读取或写入账本称为提案。这个提案由 Marbles(通过 SDK)构建,然后发送到一个区块链节点。
  4. 该节点将与它的 Marbles 链代码容器进行通信。链代码将运行/模拟该交易。如果没有问题,它会对该交易进行背书,并将其发回我们的 Marbles 程序。
  5. 然后,Marbles(通过 SDK)将背书后的提案发送到订购服务。订购方将来自整个网络的许多提案打包到一个区块中。然后,它将新的区块广播到网络中的节点。
  6. 最后,节点会验证该区块并将它写入自己的账本中。该交易现在已经生效,所有后续读取都会反映此更改。

1.链代码部分 - 这是在区块链网络上运行的/包含节点的 GoLang 代码。也称为 cc。所有弹珠/区块链交互最终都会在这里进行。这些文件位于 /chaincode 中。
1.客户端 JS 部分 - 这是在用户浏览器中运行的 JavaScript 代码。用户界面交互在这里执行。这些文件位于 /public/js 中。
1.服务器端 JS 部分 - 这是运行应用程序的后端的 JavaScript 代码,即为 Marbles 的核心的 Node.js 代码!有时该代码也称为我们的节点服务器代码。它充当 Marbles 管理员与我们的区块链之间的连接器。这些文件位于 /utils/routes 中。


Marbles 设置(大前提npm install执行没问题V*P*N)

0.设置本地环境

安装Fabric环境要求配置

1.下载 Marbles

    git clone https://github.com/IBM-Blockchain/marbles.git 
    cd marbles
    git checkout v4.0

2.启动Fabric网络

版本: Hyperledger Fabric v1.0.0
fabric-samples

cd fabric-samples/fabcar
./startFabric.sh
node invoke.js
node query.js

这里写图片描述

3.安装并实例化Marbles的链代码

npm install
cd ./scripts
./build_marbles_image.sh
node install_chaincode.js
node instantiate_chaincode.js

这里写图片描述

在实例化链码时可能会遇到以下问题

Error: Cannot find module 'fabric-client/lib/Peer.js'

这里写图片描述

export NODE_PATH=/root/node_modules
git clone https://github.com/hyperledger/fabric-sdk-node.git
cp -R ~/fabric-sdk-node/fabric-client /root/node_modules/

4.启动 Marbles

npm install gulp -g
npm install
gulp marbles_local

这里写图片描述

使用 Marbles

启动后访问http://ip:3001
这里写图片描述

转载于:https://www.cnblogs.com/llhl/p/9648632.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超级账本Fabric区块链用弹珠游戏Marbles 部署 的相关文章

随机推荐

  • 电子信息毕设分享 STM32题目项目汇总 - 100例

    文章目录 1前言 2 STM32 毕设课题 3 如何选题 3 1 不要给自己挖坑 3 2 难度把控 3 3 如何命名题目 1前言 更新单片机嵌入式选题后 不少学弟学妹催学长更新STM32和C51选题系列 感谢大家的认可 来啦 以下是学长亲手
  • Pandas库常用函数和操作

    目录 1 DataFrame 处理缺失值 dropna 2 根据某维度计算重复的行 duplicated value counts 3 去重 drop duplicates 4 拼接 1 拼接列 merge 2 拼接行 5 找出在某一特定维
  • PCB Dk、Df和介质损耗

    介电常数Dk Dk即Dielectric constant的简称 中文名叫介电常数 又叫介质常数或介电系数 它是表示绝缘能力特性的一个系数 以字母 表示 在工程应用中 介电常数时常以相对介电常数的形式来表达 而不是绝对值 常见应用有计算阻抗
  • VS2010启动速度变慢和编译速度变慢的解决办法

    以前一直用VC6 0编写C 和MFC程序 速度非常快 后来因为要编64位程序 只能舍弃掉6 0 改VS2010 其实就功能来说 VC6 0真的够用了 VS2010的高级功能从来没用过 刚开始装VS2010的时候运行速度还算可以 但用了不到一
  • 跨线程的信号与槽

    跨线程的信号与槽 接着上面讨论的 我们如何应用驻足在其他线程里的QObject方法呢 Qt提供了一种非常友好而且干净的解决方案 向事件队列post一个事件 事件的处理将以调用我们所感兴趣的方法为主 当然这需要线程有一个正在运行的事件循环 而
  • 【云原生之Docker实战】使用docker部署Halo博客系统

    云原生之Docker实战 使用docker部署Halo博客系统 一 Halo介绍 1 Halo简介 2 Halo特点 3 本次实践说明 二 检查本地docker环境 1 检查docker版本 2 检查docker状态 3 检查docker
  • 面向对象设计原则——里氏代换原则

    里氏代换原则 Liskov Substitution Principle LSP 所有引用基类 父类 的地方必须能透明地使用其子类的对象 里氏代换原则告诉我们 在软件中将一个基类对象替换成它的子类对象 程序将不会产生任何错误和异常 反过来则
  • msvcp120.dll文件丢失如何解决?

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个msvcp120 dll文件进行安装 前提是找到
  • InvalidIndexError: (slice(None, None, None), None)

    在对照书复现代码时 1 直接将X Y画图不会报错 2 引入线性回归模型 再用拟合的数据画图就报错 原因 需要转换数据格式 import pandas as pd import matplotlib pyplot as plt import
  • 规避【虚拟专线技术】使用风险实现业务系统安全

    本文为作者学习文章 按作者习惯写成 如有错误或需要追加内容请留言 不喜勿喷 本文为追加文章 后期慢慢追加 一 技战法描述 VPN是利用Internet等公共网络基础设施 通过隧道加密通信技 术 为用户提供安全的数据通信的专用网络 可以实现不
  • 使用EasyPoi导入导出Excel

    easypoi功能如同名字easy 主打的功能就是容易 让一个没见接触过poi的人员 就可以方便的写出Excel导出 Excel模板导出 Excel导入 Word模板导出 通过简单的注解和模板 语言 熟悉的表达式语法 完成以前复杂的写法 这
  • idea Ctrl+Alt+T 快捷键失效、无法弹出surround with、与qq热键冲突-解决办法

    idea Ctrl Alt T 快捷键失效 无法弹出surround with 与qq热键冲突 解决办法 1 问题描述 2 解决方法1 3 解决方法2 1 问题描述 idea快捷键 CTRL ALT T 这个快捷键失效了 显然是热键冲突 其
  • Web中间件常见安全漏洞总结

    IIS IIS是Internet Information Services的缩写 意为互联网信息服务 是由微软公司提供的基于运行Microsoft Windows的互联网基本服务 IIS目前只适用于Windows系统 不适用于其他操作系统
  • Beyond Compare代码对比工具

    一个程序员的工作不仅仅是写代码 还有代码的检查 比较 版本日志等等 所以一个聪明的程序员会利用各种工具来简化这些工作 比如 代码的检查 我们会用一些ide 如写ios用xcode 写c 用vs 写android用android studio
  • PyQt5打开文件目录(QTreeView)并在QT界面输出文件目录并双击文件返回文件目录名

    最近发现了一个挺厉害的人工智能学习网站 内容通俗易懂 风趣幽默 感兴趣的可以点击此链接进行查看 床长人工智能教程 废话不多说 请看正文 打开整个文件目录 直接打开电脑的各个文件目录 显示出c盘 d盘等 如下图所示 代码如下 import s
  • win10与centos7的双系统U盘安装(一:制作u盘启动盘)

    博主近来在学习linux系统 当然学习第一步自然是安装系统了 博主选择的是centos7 博主自己的电脑是联想的 系统是win10专业版 在历经数次失败后 博主成功使用u盘安装了win10和centos的双系统 并且恢复了win10的启动项
  • 【模板】有理数取余(小白版)

    模板 有理数取余 洛谷P2613 题目链接 https www luogu com cn problem P2613 解题思路 不知道你是如何找到这个题解的 或者直接百度的 或者在我的其他题解里链接过来的 有理数取余这是一个知识点 也可能配
  • golang 两数之和,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标

    给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 target 的那 两个 整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素在答案里不能重复出现 你可以按任意顺
  • 三目运算符的多层嵌套

    三目运算符的基础用法是二选一 当我们想多选一时就可以利用三目运算符的多层嵌套来完成 可以替代if多层判断 三目运算符的结构 根据不同的条件 执行不同的操作 返回不同的值 嵌套语法 条件1 值1或操作1 如果满足条件1 就返回值1或执行操作1
  • 超级账本Fabric区块链用弹珠游戏Marbles 部署

    Marbles 演示 Marbles GitHub地址 关于 Marbles 这个应用程序的基础网络是 Hyperledger Fabric 后者是一个 Linux Foundation 项目 您可能想查阅以下操作说明来稍微了解一下 Hyp