基于区块链的合同存证应用开发

基于区块链的合同存证应用开发

任务一:环境准备

1.启动区块链网络

目录: /root/xuperchain/output/

启动区块链网络

bash constrol.sh start

在这里插入图片描述

2.创建钱包账户

目录: /root/xuperchain/output/

创建tenant, landlord钱包账户,命令如下:

bin/xchain-cli account newkeys --output data/tenant

bin/xchain-cli account newkeys --output data/landlord

在这里插入图片描述

3.向钱包账户转账

目录: /root/xuperchain/output/

通过data/tenant/address,data/landlord/address文件拿到钱包地址

cat data/tenant/address

cat daata/landlord/address

在这里插入图片描述

分别给两个地址分别转账,命令如下:

bin/xchain-cli transfer -to (address) --amount 10000000 --keys data/keys/ -H 127.0.0.1:37101

查看账余额,命令如下:

bin/xchain-cli account balance -- keys () -H 127.0.0.1:37101

在这里插入图片描述

任务二:前端工程编码

1.下载前端工程

目录: /root/Desktop

下载路径:http://res.handge.cn:8999/blockchain-6/blockchain-device-Part.3/09/front.zip

wget http://res.handge.cn:8999/blockchain-6/blockchain-devicePart.3/09/front.zip

2.解压前端工程

将下载好的 front.zip 拖到桌面, 解压

unzip front.zip

3.启动前端项目

在项目根目录下运行命令:

安装依赖:

npm install --unsafe-perm

启动:

npm run serve

在这里插入图片描述

运行成功弹出项目访问地址

在这里插入图片描述

任务三:配置数据库

1.连接数据库

终端输入如下命令,连接 mysql 数据库,密码为 123456

mysql -uroot  -p

2.创建数据库

创建test数据库

create database test;

查看所有数据库

show databases;

在这里插入图片描述

3.创建数据表

使用test数据库

use test;

创建表

CREATE TABLE `house_leasing_contract` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
`landlord` varchar(255) NOT NULL COMMENT '房东的账户公钥',
`tenant` varchar(255) NOT NULL COMMENT '租客的账户公钥',
`rent_amount` bigint NOT NULL COMMENT '每月租金金额',
`deposit_amount` bigint NOT NULL COMMENT '押金金额',
`rent_due_date` int NOT NULL COMMENT '租金到期日',
`lease_start_date` datetime NOT NULL COMMENT '租赁开始日期',
`lease_end_date` datetime NOT NULL COMMENT '租赁开始日期',
`lease_duration` int NOT NULL COMMENT '租赁期限',
`contract_hash` varchar(255) NULL COMMENT '租赁协议的哈希值',
`property_hash` varchar(255) NULL COMMENT '租赁物业信息的哈希值',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=COMPACT;

在这里插入图片描述

任务四:编写后端程序

1.构建 Java 项目

打开Intellij IDEA, 点击新建项目,设置项目名为:house-leasing,项目位置:~/Desktop,语言: Java, 构建系统:Maven,JDK: 11, 点击创建。

在这里插入图片描述

修改包路径,将[org.example]改为[src],右键选中包名,依次选中【重构】–>【重命名】,重命 名软件包,如下图所示:

在这里插入图片描述

在这里插入图片描述

修改Maven依赖 文件地址:/root/Desktop/house-leasing/pom.xml 修改内容为:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.11</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zhonghui</groupId>
<artifactId>house-leasing</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>house-leasing</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baidu.xuper</groupId>
<artifactId>xuper-java-sdk</artifactId>
<version>0.3.0</version>
</dependency
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

编辑项目配置文件 /root/Desktop/house-leasing/src/main/resources 目录下创建application.properties文件

在这里插入图片描述

编辑配置文件内容:

server.port=8090
spring.datasource.url: jdbc:mysql://localhost:3306/test
spring.datasource.username: root
spring.datasource.password: 123456
spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver
mybatis.type-aliases-package: src/entity
mybatis.mapper-locations: classpath:/mapper/*.xml

最后将桌面上的合约和编译文件拖入/root/Desktop/house-leasing/src/main/resources目录下, 如下图所示:

在这里插入图片描述

使用solc编译合约,进入 /root/Desktop/houseLeasing/src/main/resources目录下执行如下命令

./solc --abi --bin RentalAgreement.sol -o --output-dir

在/root/Desktop/HouseLeasing/src/main/resources/–output-dir目录下生成的abi和bin文件:

在这里插入图片描述

2. 编写代码

以下代码文件路径均为/root/Desktop/houseLeasing/src/main/的相对路径,完整的项目文件如下图所 示。

在这里插入图片描述

代码一

代码文件路径:java/src/HouseLeasingApplication.java

新建HouseLeasingApplication.java文件,实现构建xuperchain客户端, 获取账户,解决跨域请求, 时 间格式化等功能。代码如下

package src;
import com.baidu.xuper.api.Account;
import com.baidu.xuper.api.XuperClient;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么都想学。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值