当前位置: 首页 > news >正文

做政府网站服务什么是网络营销平台

做政府网站服务,什么是网络营销平台,西安网站制作中心,广州机械网站建设区块链的供应链溯源应用开发 一 、环境准备 (1)更新镜像源 apt update(2)安装(openssl、jdk、git) apt -y install openssl default-jdk git(3)配置JAVA_HOME环境变量 echo “export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/” >> /etc/profilesource /etc…

区块链的供应链溯源应用开发

一 、环境准备

(1)更新镜像源

apt update

在这里插入图片描述

(2)安装(openssl、jdk、git)

apt -y install openssl default-jdk git

在这里插入图片描述

(3)配置JAVA_HOME环境变量

echo “export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/” >> /etc/profilesource /etc/profile

(4)下载区块链开发部署工具

使用curl命令下载build_chain.sh区块链开发部署工具
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh && chmod u+x build_chain.sh

在这里插入图片描述

(5)下载fisco-bcos二进制程序

使用wget命令下载fisco-bcos二进制程序
wget -c http://res.zhonghui.vip/blockchain/training/trace/resourse/fisco-bcos.tar.gz
解压缩文件,使用tar命令将fisco-bcos.tar.gz压缩包解压。-x参数解压文件,-v参数显示解压过程,-f参数指定文件
tar -xvf fisco-bcos.tar.gz

(6) 搭建并启动区块链网络

搭建区块链网络
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -e ./fisco-bcos

在这里插入图片描述

启动区块链网络
bash nodes/127.0.0.1/start_all

在这里插入图片描述

(7) 安装并启动webase-front服务

使用wget命令下载
wget -c http://res.zhonghui.vip/blockchain/training/trace/resourse/webase-front.zipunzip webase-front.zipcp -r nodes/127.0.0.1/sdk/* webase-front/conf/
启动webase-front服务
cd webase-frontbash start.sh

在这里插入图片描述

在网站中打开:http://127.0.0.1:5002/WeBASE-Front

在这里插入图片描述

(8)合约功能开发

在这里插入图片描述

编写供应链(Logistics.sol)合约
pragma solidity 0.6.10;
pragma experimental ABIEncoderV2;contract Logistics {struct LogisticsData {address cargo;            // 货物合约地址address orgin;            // 货物上级合约地址address destination;     // 货物下级合约地址string memo;              // 备注信息uint createdAt;            // 创建时间uint queryCount;      // 已查询次数}LogisticsData[] private _logisticsData;              // 全部物流信息数组uint public recordCount;                  // 所有记录条数uint public queryCount;               // 所有查询次数function newLogistics(address cargo, address orgin, addressdestination, string memory memo) public {_logisticsData.push(LogisticsData({cargo:cargo,        // 货物合约地址orgin:orgin,        // 货物上级合约地址destination: destination, // 货物下级合约地址memo:memo,         // 备注信息createdAt:now,    // 创建时间初始化为当前时间queryCount:0       // 查询次数初始化为0}));recordCount = recordCount + 1;      // 所有记录条数增加1}function getLogisticsInfo(address cargo) publicreturns(LogisticsData[] memory _cargoLogisticsData) {// 使用new关键字初始化LogisticsData[]数组,长度为3,将其赋值给_cargoLogisticsData数组变量_cargoLogisticsData = new LogisticsData[](3);// 进行3次循环for (uint i=0; i < 3; i ++) {// 在所有物流记录中查询货物合约地址为cargo的记录for (uint j=0; j < _logisticsData.length; j++) {if (_logisticsData[j].cargo == cargo) {// 把此条物流记录查询次数增加1_logisticsData[j].queryCount =_logisticsData[j].queryCount + 1;// 把此条物流记录添加到_cargoLogisticsData数组变量中_cargoLogisticsData[i] = _logisticsData[j];}}// 把货物上级合约地址赋值给cargo,进行上级货物物流记录的查询cargo = _cargoLogisticsData[i].orgin;if (cargo == address(0)) {// 货物上级地址为空,终止循环break;}}// 把全部记录查询次数增加1queryCount = queryCount + 1;return _cargoLogisticsData;}}

在这里插入图片描述

编写原产品(Material.sol)合约
pragma solidity 0.6.10;
contract Material {
address private _owner; // 合约创建者
string private _name; // 原产品名
string private _memo; // 备注信息
uint private _createdAt;// 创建时间
constructor(string memory materialName, string memory memo)
public {
_owner = msg.sender; // 把创建合约的地址赋值给_owner
_name = materialName; // 把原产品名赋值给_name
_memo = memo; // 把备注信息赋值给_memo
_createdAt = now; // 把当前时间赋值给_createdAt
}
function getMaterialInfo() public view returns(address, string
memory, string memory , uint){
return (_owner, _name, _memo, _createdAt);
}
}

在这里插入图片描述

编写中间产品(Product.sol)合约
pragma solidity 0.6.10;
import "./Logistics.sol";
contract Product {
address private _owner;    // 合约创建者
string private _name;   // 中间产品名
string private _memo;    // 备注信息
uint private _createdAt;     // 创建时间
address private _materialAddress;     // 原产品合约地址constructor(address materialAddress, address logisticsAddress,
string memory productName, string memory memo, string memory
logisticsMemo) public {
_owner = msg.sender; 
// 把创建合约的地址赋值给_owner_name = productName;
// 把中间产品名赋值给_name_materialAddress = materialAddress; 
// 把原产品合约地址赋值给_materialAddress_memo = memo; // 把备注信息赋值给_memo
_createdAt = now; // 把当前时间赋值给_createdAt// 调用供应链合约,保存供应链数据
Logistics(logisticsAddress).newLogistics(materialAddress,
address(0), address(this), logisticsMemo);
}
function getProductInfo() public view returns(address, string
memory, string memory memo, uint){
return (_owner, _name, _memo, _createdAt);
}
}

在这里插入图片描述

编写商品(Goods.sol)合约
pragma solidity 0.6.10;
import "./Logistics.sol";
contract Goods {
address private _owner; // 合约创建者
string private _name; // 商品名
string private _memo; // 备注信息
uint private _createdAt; // 创建时间
address private _productAddress; // 中间产品合约地址
address private _logisticsAddress; // 供应链合约地址
constructor(address materialAddress, address productAddress,
address logisticsAddress, string memory goodsName, string memory
memo, string memory logisticsMemo) public {
_owner = msg.sender; // 把创建合约的地址赋值给
_owner
_name = goodsName; // 把商品名赋值给_name
_productAddress = productAddress; // 把中间产品合约地址赋值
给_productAddress
_memo = memo; // 把备注信息赋值给memo
_createdAt = now; // 把当前时间赋值给
_createdAt
_logisticsAddress = logisticsAddress;// 把供应链合约地址赋值给
_logisticsAddress
// 调用供应链合约,保存供应链数据
Logistics(logisticsAddress).newLogistics(productAddress,
materialAddress, address(this), logisticsMemo);
}
function getGoodsInfo() public view returns(address, string
memory, string memory memo, uint){
return (_owner, _name, _memo, _createdAt);
}
function sell(string memory logisticsMemo) public {
// 调用供应链合约,保存供应链数据
Logistics(_logisticsAddress).newLogistics(address(this),
_productAddress, address(0), logisticsMemo);
}
}

在这里插入图片描述

(9)导出合约文件

在这里插入图片描述

在这里插入图片描述

二、 构建项目

(1)生成go合约文件

mkdir web && cd webmkdir contract && cd contract
将导出的合约文件移动到当前contract文件夹下并解压
mv /root/Downloads/trace.zip ./
unzip trace.zip
<
http://www.mmbaike.com/news/65059.html

相关文章:

  • 美女做直播网站seo搜索引擎优化人才
  • 沈阳网站建设制作网站链接提交
  • wordpress 访问量福州短视频seo服务
  • 做企业的网站都要准备什么小红书推广怎么收费
  • 企业官网快速建站框架网推和地推的区别
  • 淘宝几百块钱做网站靠谱吗torrentkitty磁力官网
  • mysql python开发网站开发网站开发从入门到实战
  • 做图在哪个网站上找怎样推广自己的店铺啊
  • 苏州seo网站系统谷歌搜索引擎免费入口 台湾
  • 企业管理网站市场营销计划书模板
  • 中国人做英文网站网站收录优化
  • 湖南网站建设公司 真好磐石网络潍坊百度seo公司
  • 用vue.js做网站杭州专业seo公司
  • vs网站开发源码seo培训机构排名
  • 重庆锅炉网站建设费用网络运营培训班多少钱
  • 企业自助建站系统怎么建合肥关键词优化平台
  • 广东企业网站建设公司网站品牌推广策略
  • 为什么辽宁省城乡建设厅网站打不开网站推广方式有哪些
  • 做个网站做蔬菜批发站内优化
  • 南阳做网站优化的公司seo技术代理
  • 更换dns能上国外网站吗厦门人才网官方网站
  • 做购物网站学什么技术seo研究协会网
  • 网站开发平台樱花bt引擎
  • 深圳网站域名微信朋友圈推广
  • 找公司做网站优秀营销软文范例300字
  • 幼儿园网站开发台州百度推广优化
  • wordpress清理网站缓存免费建站平台哪个好
  • 中国建设银行jcb卡网站百度人工客服
  • 三点水网站建设合同书百度趋势搜索大数据
  • 开封小吃网站建设爱站工具包官网