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

网站的 规划与建设做电影网站的程序

网站的 规划与建设,做电影网站的程序,系统优化,9377烈焰传奇手游官网区块链的供应链溯源应用开发 一 、环境准备 (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.yayakq.cn/news/425279/

相关文章:

  • python 网站建设潍坊网络公司
  • 郑州手机网站推广外包手机软件app制作的三种方式
  • 网站建设需要哪些专业技术专业做汽车的网站
  • 番禺建设局网站首页网页无法访问qq可以登陆
  • 网站建设单一来源谈判文件专业上海网站建设公司排名
  • 工艺品网站域名基于wed的网站开发
  • 网站软件大全免费下go网站开发
  • 网站托管平台中山品牌网站建设
  • 怎么建设局域网站做淘宝有哪些推广网站
  • 做网站的背景图片要多大长沙百度快速排名优化
  • 安阳网站设计多少钱dw制作asp网站模板下载
  • 社交网站开发外文企业公示信息查询系统浙江
  • 徐老师在那个网站做发视频wordpress 建立后台默认用户
  • app网站开发书籍下载上海著名网站设计公司
  • 怎么样子做网站做都是正品的网站很难吗
  • 怎么做能上谷歌网站吗百度搜索结果
  • 个人信息网站建设的心得体会门户网站建设调查问卷
  • 太原网络营销网站临淄信息港最新招聘
  • 网站怎么上传代码吗微讯信息群号1000000
  • 贵州建设厅网站官网百度关键词数据
  • 碧辉腾乐 网站建设宁波seo推广定制
  • 手机app网站制作史家小学网站建设
  • 网站源码爬取工具重庆沙坪坝新闻最新消息
  • 淘宝客做网站链接网站被降权怎么办
  • 怎么自己做网站的推广网络营销的特点不包括什么
  • 网站建设是什么软件做理财网站
  • 河北省建设工程造价管理协会网站东莞营销型网站建设费用
  • 哪些网站可以看一级a做爰片西宁做网站君博相约
  • 咸阳网站开发免费搭建个人博客网站
  • 天津哪里能做网站网站建设怎么添加背景音乐