第一个基于FISCOBCOS的前后端项目(发行转账)

时间:2024-07-10 10:07:56

   本文旨在介绍一个简单的基于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目录上

img

  • 配置java环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/

启动

cd &&cd fisco
​​​​​​​cd webase-front
​
bash start.sh

img

  • 输入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,至此功能演示完毕!

想要源码可以私信~     觉得有意思可以举起你发财的小手帮我点个赞~~