【区块链】外部应用程序与区块链进行交互

一,外部应用程序与区块链进行交互案例目标与流程

1.1案例目标

  • 掌握FISCO BCOS应用环境的搭建 与使用(FISCO BCOS+WeBASE)
  • 掌握基于Java + SpringBoot的应 用程序后端项目搭建与开发。
  • 掌握应用程序后端与FISCO BCOS 链的交互。
  • 掌握应用程序前端项目搭建与开发

1.2开发流程

开发流程

  • 构建区块链应用环境。搭建FISCO BCOS环境,搭建WeBASE-Front平台实现, 部署示例智能合约。
  • 构建应用程序后端。通过WeBASE- Front导出后端项目,基于WeBASE Front API开发示例智能合约使用接口。
  • 构建应用程序前端。下载示例前端 代码模板,区块链功能应用开发。

 

二,FISCO BCOS区块链应用环境搭建与配置

2.1 搭建FISCO BCOS区块

搭建FISCO BCOS区块链的实现步骤如下

命令如下

mkdir -p ~/fisco
cd ~/fisco
curl -#LO https://github.com/FISCO-BCOS/FISCO- BCOS/releases/download/v2.7.2/build_chain.sh && chmod u+xbuild_chain.shchmod u+x build_chain.sh
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
bash nodes/127.0.0.1/start_all.sh

2.2 搭建WeBASE-Front平台

搭建WeBASE-Front平台的步骤流程:

命令

wget https://osp-1257653870.cos.ap-
guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.2/webas
e-front.zip
unzip webase-front.zip
cd webase-front
cp -r ~/fisco/nodes/127.0.0.1/sdk/* ./conf/
bash start.sh

注意:WeBASE-Front启动需要提前配置JAVA_HOME环境变量。

搭建成功如下

 2.3 示例区块链智能合约部署

智能合约部署流程

2.3.1智能合约文件创建

  • 使用浏览器登录 http://localhost:5002/WeBA SE-Front网站
  • 点击“合约管理”->“合约 IDE” ,新建智能合约,如第一张图所示
  • 在弹出对话框中输入合约名为 “StringGetSet” ,文件目录 为“/” ,点击“确认“ ,查看 文件导航栏是否有 StringGetSet文件,如第二张图所示
  • 添加合约内容

2.3.2创建用户、部署合约

点击导航栏的”合约管理 “->"测试用户"->”新增用 户 “ , 输 入 用 户 名”test_user_1“ 

重新在”合约IDE“中选中 StringGetSet合约,点击右 上角”部署“ ,在弹出框中 选择”test_user_1“用户, 然后点击确认

三,搭建应用程序后端基本框架并配置

3.1搭建与配置

大致步骤如下:

3.2项目导入

3.2.1通过WeBASE-Front-> 合约IDE导出“StringGetSet”项目

3.2.2使用IDEA等开发软件导入StringGetSet项目

3.2.3,在开发软件中对项目进行相关配置

3.3 配置Swagger UI

3.3.1配置build.gradle添加相关配置

3.3.2在Config包中添加Swagger配置代码SwaggerConfig.java

代码 如链接:https://gitee.com/zhiguxingtu/demo8- back/blob/master/src/main/java/org/example/StringGetSet/config/Swagg erConfig.java

3.4开发基于Java SDK的API

创建controller包,并在 controller包中添加 StringGetSetController.java文件。

编写StringGetSetController.java 对应代码。

启动项目,访问 http://localhost:8080/swagger- ui.html查看并使用接口。

四,开发基于WeBASE-Front API的应用程序接口

4.1 应用接口开发

应用接口开发的大致流程

4.2 添加hutools依赖

在build.gradle引入hutools依赖包,代码如下:

implementation 'cn.hutool:hutool-all:5.7.9'

4.3 编写WeBASE API服务

1、在service包中添加 WeBASEService.java文件,以及在 controller包中添加 WeBASEController.java文件。

2、编写WeBASEService.java对应代码。

3、编写WeBASEController.java对应代码

4.4 验证接口开发结果

http://localhost:8080/swagger-ui.html

1、使用newSet调用智能合约: 在WeBASE管理平台,复制一个测试用户的地址。在newSet调用接口中复制该用 户地址,并填写对应的值,点击”Try it out!“

2、使用newGet方法验证: 用同样的方法打开newGet接口界面,并输入用户地址,点击”Try it out!“

4.5 开发并验证智能合约查询接口

基于Get和Set开发模式 编写Controlle r与Service

 1. 在service包中的WeBASEService添 加listDeployedContract函数,函数调用WeBASE API的合约查看接口 ()

2. 在controller中的WeBASEControlle r中添加list接口

3. 访问http://localhost:8080/swagg er-ui.html验证

4. 打开接口直接点击“Try it out!” , 查看返回会有所有合约对应地址内容

五,开发应用程序前端页面

5.1 应用程序前端开发流程

应用程序前端的开发流程

5.2 下载模板并安装依赖

mkdir -p ~/fisco/front-project
cd ~/fisco/front-project
git clone https://gitee.com/zhiguxingtu/init-front.git
cp -r init-front demo8
cd demo8
npm install

开发项目为demo8

5.3 开发应用程序前端页面

1. 添加导航功能,创建components文件夹,在文件夹中创建Navigator.vue,编写相关代码。

2. 修改主页功能的views/Home.vue相关代码。

3. 添加其他应用功能在views目录下创建SDK.vue和WeBASE.vue文件,并编写页面显示代码

4. 修改路由跳转文件router.js代码。 代码地址:https://gitee.com/zhiguxingtu/demo8-front

 5.4 验证应用程序前端开发

1、使用命令启动:

cd ~/fisco/front-project/demo8
npm run serve

2、访问:http://localhost:8020/#/home:

 3访问导航栏的“Java SDK”和“WeBASE”功能

六,开发应用程序前端对应交互功能

6.1 编写智能合约交互功能

1、修改SDK.vue代码,添加Javascript调用后端代码,在<script>标签中添加methods,修改<template>标签中的内容。

2、修改WeBASE.vue代码,添加Javascript调用后端代码,在<script>标签中添加methods,修改<template>标签中的内容。

6.2 验证开发情况

6.2.1验证Java SDK智能合约调用

(1)进入Java SDK导航,在“Set方法”的输入框输入“你好!” ,有如下返回

(2)进入Java SDK导航,在“Get方法”调用“调用” ,有如下返回

 

6.2.2、验证WeBASE-Front API智能合约调用情况

(1)进入WeBASE导航,在“账户地址”输入“test_user_1”的地址,模拟Java SDK的Get方法调用方法。

(2)进入WeBASE导航,在“账户地址”输入“test_user_1”的地址,模拟Java SDK的Set方法调用方法,设置输入内容为“这是一个测试” 。

(3)进入WeBASE导航,在“账户地址”输入“test_user_1”的地址,模拟Java SDK的Get方法调用方法,查看结果值。

6.3 开发功能:获取所有智能合约并测试

1. 修改Home.vue,添加获取列出所有智能合约的方法。

2. 通过页面验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF hc:PropertyGrid 嵌套显示

重点&#xff1a; 编写Edit特性即可&#xff1a; public class ParameterEditor : PropertyEditorBase{public override FrameworkElement CreateElement(PropertyItem propertyItem){var pg new PropertyGrid();return pg;}public override DependencyProperty GetDependen…

基于Vue+SpirngBoot的博客管理平台的设计与实现(论文+源码)_kaic

摘 要 随着当下社会的发展&#xff0c;互联网已经成为时代的主流&#xff0c;从此进入了互联网时代&#xff0c;对大部分人来说&#xff0c;互联网在日常生活中的应用是越来越频繁&#xff0c;大家都在互联网当中互相交流、学习、娱乐。博客正是扮演这样一个角色。博客已成为当…

实验八 单区域OSPF路由协议配置

一、实验目的 掌握 OSPF 动态路由协议的配置、诊断方法。 二、实验步骤 1、 运行Cisco Packet Tracer软件&#xff0c;在逻辑工作区放入三台路由器、两台工作站PC及一台笔记本&#xff0c;分别点击各路由器&#xff0c;打开其配置窗口&#xff0c;关闭电源&#xff0c;分别加…

Python装饰器的应用

Python 中的装饰器是一种语法糖&#xff0c;可以在运行时&#xff0c;动态的给函数或类添加功能。装饰器本质上是一个函数&#xff0c;使用 函数名就是可实现绑定给函数的第二个功能 。它的作用就是在不修改被装饰对象源代码和调用方式的前提下为被装饰对象添加额外的功能。 …

Ownips+Coze海外社媒数据分析实战指南

目录 一、引言二、ISP代理简介三、应用实践——基于Ownips和coze的社媒智能分析助手3.1、Twitter趋势数据采集3.1.1、Twitter趋势数据接口分析3.1.2、Ownips原生住宅ISP选取与配置3.1.3、数据采集 3.2、基于Ownips和Coze的社媒智能助手3.2.1、Ownips数据采集插件集成3.2.2、创建…

【Unity入门】认识Unity编辑器

Unity 是一个广泛应用于游戏开发的强大引擎&#xff0c;从 1.0 版本开始到现在&#xff0c;其编辑器的基本框架一直保持稳定。其基于组件架构的设计&#xff0c;使得界面使用起来直观且高效。为了更好地理解 Unity 的界面&#xff0c;我们可以将其比喻为搭建一个舞台。以下是对…

【AI+chat】推荐一款基于大模型的智能对话机器人,支持微信公众号、企业微信应用、飞书、钉钉接入

之前写了一篇文章&#xff0c; coze配置 kimichat集成到微信公众号聊天 【AIchat】手把手配置kimichat集成到微信公众号中对话聊天 。 有同学私信我有没有开源项目&#xff0c; 这里推荐一款chatgpt-on-wechat。 官方git地址&#xff1a;https://github.com/zhayujie/ch…

Yann LeCun 和 Elon Musk 就 AI 监管激烈交锋

&#x1f989; AI新闻 &#x1f680; Yann LeCun 和 Elon Musk 就 AI 监管激烈交锋 摘要&#xff1a;昨天&#xff0c;Yann LeCun 和Elon Musk 在社交媒体就人工智能的安全性和监管问题展开激烈辩论。LeCun 认为目前对 AI 的担忧和监管为时过早&#xff0c;主张开放和共享。而…

Ps:消失点滤镜 - 透视平面和网格

Ps菜单&#xff1a;滤镜/消失点 Filter/Vanishing Point 快捷键&#xff1a;Ctrl Alt V “消失点”滤镜中的透视平面 Plane和网格 Grid用于在编辑图像时保持正确的透视效果。 只有定义了与图像透视对齐的矩形平面&#xff0c;才能在消失点中进行编辑。平面的精确度确定了能否…

vue数字翻盘,翻转效果

数字翻转的效果 实现数字翻转的效果上面为出来的样子 下面为代码&#xff0c;使用的时候直接引入&#xff0c;还有就是把图片的路径自己换成自己或者先用颜色替代&#xff0c;传入num和numlength即可 <template><div v-for"(item, index) in processedNums&quo…

MOS管开关电路简单笔记

没错&#xff0c;这一篇还是备忘录&#xff0c;复杂的东西一律不讨论。主要讨论增强型的PMOS与NMOS。 PMOS 首先上场的是PMOS,它的导通条件&#xff1a;Vg-Vs<0且|Vg-Vs>Vgsth|&#xff0c;PMOS的电流流向是S->D,D端接负载&#xff0c;S端接受控电源。MOS管一般无法…

Java Web集成开发环境Eclipse的安装及web项目创建

第一步&#xff1a;下载安装JDK http://t.csdnimg.cn/RzTBXhttp://t.csdnimg.cn/RzTBX 第二步&#xff1a;下载安装Tomcat Tomcat下载安装以及配置_tomcat下载配置-CSDN博客文章浏览阅读2.5k次&#xff0c;点赞2次&#xff0c;收藏13次。Tomcat下载安装及其配置_tomcat下载配…

【云原生】kubernetes中的认证、权限设置--RBAC授权原理分析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【云原生 | 59】Docker中通过docker-compose部署ELK

目录 1、组件介绍 2 、项目环境 2.1 各个环境版本 2.2 Docker-Compose变量配置 2.3 Docker-Compose服务配置 3、在Services中声明了四个服务 3.1 ElasticSearch服务 3.2 Logstash服务 3.3 Kibana服务 3.4 Filebeat服务 4、使用方法 4.1 方法一 4.2 方法二 5、启动…

MySQL8报错Public Key Retrieval is not allowedz 怎么解决?

问题描述 当我们使用数据库管理工具连接mysql8的时候&#xff0c;可能遇到报错&#xff1a; Public Key Retrieval is not allowed 解决办法 1、在连接属性中配置allowPublicKeyRetrieval设置为true 2、在连接URL中加上配置allowPublicKeyRetrieval为true

margin-left: auto;使元素靠右

摘要&#xff1a; 今天写样式遇到一个东西&#xff0c;就是需要表单居右显示的&#xff0c;但是作用了弹性布局&#xff0c;其他的都不行的&#xff0c;一开始使用了浮动&#xff0c;但是使用了浮动后盒子就不继承父盒子的宽度了&#xff0c;移动端还行&#xff0c;自动回到100…

被追着问UUID和自增ID做主键哪个好,为什么?

之前无意间看到群友讨论到用什么做主键比较好 其实 UUID 和自增主键 ID 是常用于数据库主键的两种方式&#xff0c;各自具有独特的优缺点。 UUID UUID 是一个由 128 位组成的唯一标识符&#xff0c;通常以字符串形式表示。它可以通过不同的算法生成&#xff0c;例如基于时间…

postgressql——Tuple学习(2)

Tuple含义 作用 PG并没有像Oracle那样的undo来存放旧数据&#xff0c;而且PG没有真正意义上的delete&#xff0c;而是将旧版本直接存放于relation文件中&#xff0c;也就是成为了dead tuple。我们可以理解成“过期的数据”含义 tuple就相当于一个存储数据的小容器&#xff0c;…

【机器学习】解锁AI密码:神经网络算法详解与前沿探索

&#x1f440;传送门&#x1f440; &#x1f50d;引言&#x1f340;神经网络的基本原理&#x1f680;神经网络的结构&#x1f4d5;神经网络的训练过程&#x1f686;神经网络的应用实例&#x1f496;未来发展趋势&#x1f496;结语 &#x1f50d;引言 随着人工智能技术的飞速发…

视频集中存储LntonCVS视频监控汇聚平台智慧园区应用方案

智慧园区&#xff0c;作为现代化城市发展的重要组成部分&#xff0c;承载着产业升级的使命&#xff0c;是智慧城市建设的重要体现。在当前产业园区竞争日益激烈的情况下&#xff0c;越来越多的用户关注如何将项目打造成完善的智慧园区。 在智慧园区的建设过程中&#xff0c;各类…