六天以太坊去中心化租房平台,前端+合约源码

embedded/2024/10/19 7:30:29/

六天以太坊去中心化租房平台

  • 概述
  • 项目结构
  • 合约部署
  • 运行项目
  • 功能介绍
    • 一、首页
    • 二、房东后台
      • 我的房屋
      • 我的订单
      • 上架新房屋
    • 三、租户后台
      • 我的房屋
      • 我的订单
    • 四、仲裁后台
  • 下载地址

概述

六天区块链房屋租赁系统,采用去中心化的方式实现了房屋的租赁功能。房东可在平台上托管房屋,租客可在平台上预订房东的房屋并支付ETH为房租。在争议期内,房东或租客都可提出争议,由平台处理。争议期后,房东可提取房租ETH到自己的账户地址下。

项目结构

├── config  配置文件目录
├── src       代码目录
│   ├── assets  平台图片目录
│   ├── blockchain 与以太坊交互相关
|     └── Wallet.js 与metamask钱包交互
|     └── Eth.js 与合约交互
│   ├── components 组件目录
│   ├── contracts 租房合约目录
│   ├── router 路由
│   ├── store 存储
│   ├── utils 公共方法文件
│   ├── views 展示层
|     └── arbitrator 仲裁
|     └── home 首页
|     └── landlord 房东
|     └── tanant 租客

合约部署

租房合约在contracts目录下,其中:

  • Owner.sol 为权限合约
  • Strings.sol 为字符串处理合约
  • Rental.sol 为租房主合约

可以使用truffle进行部署,也可以直接在Remix上进行调试和部署。
编译器版本建议使用:soljson-v0.8.10
本人开发时,使用的是Ganache搭建的以太坊网络,在Metamask钱包中,配置了本地网络,在Remix中链接Metamask钱包,部署合约。
合约部署成功后,需要将合约地址更新到config目录下的user.env.js文件中。

image.png

注意:如果对合约有修改,请将编译后的abi文件更新到contracts目录下的Rental.sol文件中。

运行项目

项目使用Vue开发,前置安装软件:

  • node,版本>= 6.0.0
  • npm,版本>= 3.0.0
# 安装依赖
npm install# 启动服务,访问地址: localhost:8080
npm run dev# 编译服务
npm run build

功能介绍

一、首页

在首页里,用户可以根据地域筛选房源,也可以根据价格筛选。如下图所示。

image.png
点击房屋后可进入到房屋的预订页面。预订时,需要缴纳对应的费用。
image.png

二、房东后台

房东后台有“我的房屋”、“我的订单”、“上架新房屋”三个模块。

我的房屋

上架的访问都在我的房屋中展示。
image.png

我的订单

已出租的订单都在我的订单中展示。

image.png
租客预订后,房东需要在我的订单中进行确认,可以“拒绝“,也可以”接受“。接受后订单生效。
在仲裁期过了后,房东可以“提取房租”,在仲裁期内,如果有争议,可以”申请仲裁“。

上架新房屋

上架新房屋可以缴纳保证金,以此来证明房源的可靠性。房屋下架后保障金会返回给房东。

image.png

三、租户后台

租户后台有“我的房屋”和“我的订单”两个模块。

我的房屋

image.png

我的订单

在我的订单里可以取消预订,如果已预订,并且在仲裁期内,可以申请仲裁。
image.png

四、仲裁后台

只有合约的拥有者才能仲裁。

下载地址

https://learnblockchain.cn/goods/64


http://www.ppmy.cn/embedded/19019.html

相关文章

【Redis 开发】缓存雪崩和缓存击穿

缓存问题 缓存雪崩解决方案 缓存击穿互斥锁逻辑时间基于互斥锁解决缓存击穿问题基于逻辑过期方式解决缓存击穿问题 缓存雪崩 缓存雪崩是指在同一时间段,大量的缓存key同时失效或者Redis服务器宕机,导致大量请求到达数据库,带来巨大压力 解决…

pytest-xdist:远程多主机 - 分布式运行自动化测试

简介:pytest-xdist插件使用新的测试执行模式扩展了pytest,最常用的是在多个CPU之间分发测试以加快测试执行,即 pytest -n auto同时也是一个非常优秀的分布式测试插件,分别支持ssh和socket两种方式实现master和worker的远程通讯。…

JavaEE初阶——多线程(七)——定时器

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 此篇文章与大家分享多线程的第七篇文章——关于定时器 如果有不足的或者错误的请您指出! 目录 4.定时器4.1标准库提供的定时器4.2自己实现一个定时器4.2.1任务类4.2.2Timer类4.2.3 有一个线程来负…

[Spring Cloud] (5)gateway前后端公私钥与认证信息

文章目录 简述后端pom增加hutool工具类 nacos增加登录过期时间配置修改全局配置文件 安全通信认证接口控制层接口层实现层 工具类AES 对称加密工具类MD5工具类RSA非对称加密工具类加密盐工具类 前端引入jsencrypt工具类securityUtils.js 请求类系统通信密钥接口 登录接口增加认…

架构师系列- JVM(三)- 类加载

通过字节码,我们了解了class文件的结构 通过运行数据区,我们了解了jvm内部的内存划分及结构 接下来,让我们看看,字节码怎么进入jvm的内存空间,各自进入那个空间,以及怎么跑起来。 4.1 加载 4.1.1 概述 …

Qt tcp通信(客户端+服务器一对一)

学习自《Qt5.9 C开发指南》 服务器端: QTcpServer *tcpServer; //TCP服务器 tcpServernew QTcpServer(this); connect(tcpServer,SIGNAL(newConnection()),this,SLOT(onNewConnection())); 当有新的客户端接入时,QTcpServer内部的incomingConnectio…

Day41 HTTP编程

Day41 HTTP编程 文章目录 Day41 HTTP编程HTTP概念应用场景主要方面 HTTP案例案例一:获取淘宝商品周边类别案例二:下载图片 HTTP 概念 HTTP编程指的是使用HTTP协议进行网络编程的过程。HTTP是一种用于传输超文本的应用层协议,通常用于在客户…

QML与C++交互

Qt 你好 | 专注于Qt的技术分享平台 QML写界面,业务逻辑使用C,既能快速的开发界面也能利用C的强大生态,这是目前比较被认可的方式,那就涉及到QML与C对象的交互。 我们以登录例子来说明,页面点击登录,将信息…