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

news2024/12/25 9:03:22

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

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.coloradmin.cn/o/1709764.html

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

相关文章

二叉树(概念详解)

目录 树树的概念完全二叉树和满二叉树完全二叉树存储完全二叉树用数组存储堆 树 树是一种非线性的数据结构 树是根朝上的&#xff0c;叶子是朝下的 树是递归定义的【根N棵子树】 递归定义&#xff1a;大事化小&#xff0c;可以理解为套娃 树的子树之间是独立的&#xff0c;所…

【p-seamless-scroll】一个创建无缝滚动效果的 js 插件

p-seamless-scroll &#xff08;github&#xff1a;https://github.com/pbstar/p-seamless-scroll&#xff09;是一个创建无缝滚动效果的 js 插件。它有着轻量且高效的特性&#xff0c;支持丰富的自定义配置选项&#xff0c;提供了一系列 API 方法以及事件监听功能。 特点 丰…

【uniapp】uniapp页面介绍

目录 开发工具&#xff1a;HBuilderX介绍特点和功能 页面简介页面管理新建页面删除页面页面改名pages.json 设置应用首页 页面内容构成template模板区script 脚本区export default 外的代码export default 里的代码 style样式区 页面生命周期Vue2 页面及组件生命周期流程图Vue3…

养猫这5个必备神器你还没用?宠物空气净化器吸毛效果惊人!

养猫的铲屎官们&#xff0c;你们是否经常为家里的猫毛和异味感到困扰&#xff1f;尽管养猫能带来许多欢乐&#xff0c;但随之而来的猫毛和气味问题确实让人头疼。今天&#xff0c;我将为大家介绍养猫的五个必备神器&#xff0c;特别是宠物空气净化器&#xff0c;它在吸毛和去除…

官宣!马斯克的xAI获60亿美元融资,估值240亿美元

5月27日晚&#xff0c;马斯克旗下的大模型平台xAI在官网宣布获得60亿美元B轮融资&#xff0c;估值240亿美元。本次主要投资者包括Valor Equity Partners、红杉资本、国王控股、沙特王子-Bin Talal、Vy Capital等。 这也是大模型赛道史上最高单笔融资之一&#xff0c;超过Anthr…

Spring:事务(tx)

1. 简介 spring对jdbc进行封装&#xff0c;简化对数据库的操作 2. HelloWorld 1. 搭建模块 2.加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependency><groupId>org.springframework</groupId><artifactId>s…

基于ERNIE Bot SDK开发智趣灯谜会游戏

项目背景 猜灯谜是中国传统节日元宵节中一种深受人们喜爱的民间游戏&#xff0c;它集趣味性、知识性和艺术性于一体&#xff0c;是中华文化的重要组成部分。猜灯谜&#xff0c;顾名思义&#xff0c;就是通过解读谜面来猜测谜底&#xff0c;谜底通常是各种物品、现象或概念。 猜…

驱动未来:IT行业的现状与发展趋势

前言 随着技术的不断进步&#xff0c;IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链&#xff0c;这些技术正在重塑我们的生活和工作方式。本文将探讨IT行业的现状和未来发展趋势&#xff0c;并邀请行业领袖、技术专家和…

JAVA面试题大全(十八)

1、说一下 jvm 的主要组成部分&#xff1f;及其作用&#xff1f; 类加载器&#xff08;ClassLoader&#xff09;运行时数据区&#xff08;Runtime Data Area&#xff09;执行引擎&#xff08;Execution Engine&#xff09;本地库接口&#xff08;Native Interface&#xff09;…

如何本地 Debug React 源码

日常开发过程中&#xff0c;有时 debug react 源代码进行问题排查。一种方案是直接把通过 html 引入进来&#xff0c;另外一种是编译并通过 yarn 链接到项目中&#xff0c;本地将介绍如何通过这两种方法进行代码 Debug。 页面引入源代码方式 这种方式比较简单&#xff0c;直接…

【网络协议】一文带你搞懂Tcp和Udp(万字详解)

文章目录 前言一、端口号端口号的范围划分 二、UDP和TCP2.1 UDP2.2 UDP的特点 三、TCP四、TCP的十个核心机制1.确认应答机制2.超时重传3.连接管理--三次握手 四次挥手**三次握手**四次挥手 4.滑动窗口5.流量控制6.阻塞控制7.延迟应答8.捎带应答9.粘包问题10.异常情况 前言 再上…

LabVIEW中实现Trio控制器的以太网通讯

在LabVIEW中实现与Trio控制器的以太网通讯&#xff0c;可以通过使用TCP/IP协议来完成。这种方法包括配置Trio控制器的网络设置、使用LabVIEW中的TCP/IP函数库进行数据传输和接收&#xff0c;以及处理通讯中的错误和数据解析。本文将详细说明实现步骤&#xff0c;包括配置、编程…

为什么选择CleanMyMac软件呢?推荐理由

你是否曾经遇到过这样的问题&#xff1a;电脑运行缓慢&#xff0c;存储空间不足&#xff0c;不知道如何清理垃圾文件&#xff1f;别担心&#xff0c;我们为你找到了解决方案——CleanMyMac软件。这款强大的工具可以帮助你轻松解决这些问题&#xff0c;让你的电脑焕然一新&#…

【vue-4】遍历数组或对象v-for

1、遍历数组 <ul><li v-for"(value,index) in web.number">index>{{index}}:value>{{value}}</li> </ul> 知识点&#xff1a; <ul>标签定义无序列表 举例&#xff1a; <ul><li>Coffee</li><li>Tea…

【Mac】Ulysses for Mac(优秀的markdown写作软件) v34.3中文版安装教程

软件介绍 哪款markdown写作软件最好用&#xff1f;小编推荐您使用尤利西斯&#xff1a;Ulysses mac版&#xff01;这是mac上一款优秀的markdown写作工具。Ulysses mac版具备全新的Soulmen写作坏境&#xff0c;采用了革命性的功能增强&#xff0c;结合了最好的部分最小标记&…

项目开发-若依框架

文章目录 框架下载及运行项目学习需求修改左侧菜单栏增加标签-项目信息搭建过程问题解决 后续需要看的内容 框架下载及运行 下载安装&#xff1a; https://blog.csdn.net/anxiaoxiao61/article/details/122505963 https://blog.csdn.net/m0_67376124/article/details/12761749…

ARTS Week 31

Algorithm 本周的算法题为 1556. 千位分隔数 给你一个整数 n&#xff0c;请你每隔三位添加点&#xff08;即 "." 符号&#xff09;作为千位分隔符&#xff0c;并将结果以字符串格式返回。 示例 1&#xff1a;输入&#xff1a;n 123456789输出&#xff1a;"123.…

D2Admin:企业中后台产品前端集成方案的探索与实践

D2Admin&#xff1a;企业中后台产品前端集成方案的探索与实践 摘要&#xff1a;随着企业信息化建设的不断深入&#xff0c;中后台管理系统的前端技术选型与集成方案成为了关键。D2Admin作为一款完全开源免费的前端集成方案&#xff0c;通过采用最新的前端技术栈&#xff0c;提…

基于jeecgboot-vue3的Flowable增加表单功能(二)

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 接上一节 6、增加一个types.ts 类型 export interface FormForm {id: number | string | undefined;formName: string;formContent?: string;remark: string; } 7、api增加一个getForm…

AI大模型日报#0528:Greg专访 | 为什么OpenAI最先做出GPT-4、xAI获60亿美元融资、李飞飞经典对话Hinton

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE 4.0&#xff09;、“零一万物”&#xff08;Yi-34B&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff0…