本文旨在介绍一个简单的基于fiscobcos的前后端网站应用。Springboot+js前后端不分离。
所使用到的合约也是一个最基本的。首先您需要知道的是完整项目分为三部分,1是区块链平台webase搭建(此项目使用节点前置webase-front即可),2是智能合约编写(此项目使用的合约是webase自带的Asset合约,便于后者学习),3是前后端代码编写以及连接区块链平台(此项目后端为spring boot,前端仅仅使用了css+html+js)。OK,介绍完毕,那我们正式开始吧!
目录
一.才艺展示
一.区块链平台搭建
二,智能合约编写
三,前后端
功能演示:
一.才艺展示
先展示图片,在文末展示具体功能
一.区块链平台搭建
1.搭建单机4节点。戳我查看 (console可以不用搭建,但是java肯定要下载)
2.搭建webase-front节点前置
- 下载安装包(建议在fisco文件下面)
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-front.zip
- 解压
unzip webase-front.zip
cd webase-front
- 拷贝sdk证书文件
cp -r ../nodes/127.0.0.1/sdk/* ./conf/
- 启动节点
进入~/fisco/nodes/127.0.0.1目录上
- 配置java环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
启动
cd &&cd fisco
cd webase-front
bash start.sh
- 输入ip a 查询到你的虚拟机IP
- 在浏览器中输入
http://虚拟机IP:5002/WeBASE-Front
至此,区块链平台已经搭建。
二,智能合约编写
好的,到了我们第二部分了,智能合约可以理解为是我们连接区块链平台的介质,本项目作为最适合新手学习的项目,所以采用的合约是webase-front自带的合约Asset,在我的项目内进行了简单的修改。
我修改后的:
pragma solidity ^0.4.0;
contract Asset {
address public issuer;
mapping (address => uint) public balances;
event Sent(address from, address to, uint amount);
constructor() {
issuer = msg.sender;
}
function issue(address receiver, uint amount) public {
require(msg.sender == issuer, "Only issuer can issue tokens");
balances[receiver] += amount;
}
function send(address receiver, uint amount) public {
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
balances[receiver] += amount;
emit Sent(msg.sender, receiver, amount);
}
function getBalance(address account) public view returns (uint) {
return balances[account];
}
}
然后我们编译部署该合约
部署成功后会得到合约地址以及abi的信息,这两个信息可以在后端里进行调用。
合约一共有三个功能(发行,转账,查看余额)
三,前后端
首先展示一下项目目录,可以看到核心代码文件。后端调用智能合约,然后前端进行可视化操作。
后端主要配置文件的地方
功能演示:
代币发行:
登录管理员账户,发行代币。
如果不是管理员账户则发行失败:
这里的权限控制是合约进行的。只需要一行代码,神奇吧。
查询余额:
用户之间转账:
OK,至此功能演示完毕!
想要源码可以私信~ 觉得有意思可以举起你发财的小手帮我点个赞~~