开源
Decentral:去中心化的web3版本的AirBnb租赁网站
来源:元经纪     阅读:1027
网站管理员
发布于 2023-02-14 08:28
查看主页

概述

这是一个去中心化的web3.0版本的AirBnb租赁网站。

开始

先决条件

请安装或已安装以下内容:

nodejs 和 yarn

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

项目结构

这是一个使用 Hardhat/React js 构建的全栈 web3 去中心化应用程序,因此该项目分为 2 个主要部分:

    • 智能合约/后端:
它位于 hardhat 文件夹中,包含使用 Hardhat 构建的区块链开发环境,以及所有智能合约测试、部署脚本和使用的插件(chainlink)。
    • 前端侧:
UI的代码可以在src文件夹中找到(就像在所有reactjs应用程序中一样)

初始设置

  1. 克隆存储库并通过运行以下命令安装所有必需的软件包:

    git clone https://github.com/kaymen99/DecentralAirbnb.git
    cd DecentralAirbnb
    yarn
  2. 启动ganache网络,将第一个账号的私钥导出到安全帽文件夹中的.env文件中,它将作为管理员部署Airbnb合约:

    ETHERSCAN_API_KEY="your etherscan api key"
    POLYGON_RPC_URL="Your polygon RPC url from alchemy or infura"
    MUMBAI_RPC_URL="Your mumbai RPC url from alchemy or infura"
    PRIVATE_KEY="ganahce-private-key"
    • 注意:我使用甘纳许网络只是为了测试,如果你想直接部署到真实/测试网络,你需要在.env文件中添加你的真实私钥。
  3. 由于 infura 最近删除了其免费的 IPFS 网关,我使用 api 将租赁图像存储到 IPFS 中,这个 API 就像 infura 一样简单,它需要创建一个免费帐户和一个新的 api 令牌,您可以在此处完成,当您完成将 api 令牌添加到文件中时:web3.storagesrc/utils/StoreContent.js

     const web3storage_key = "YOUR-WEB3.STORAGE-API-TOKEN";
  4. 在此处获取Google maps api-key(免费),并将其添加到src/component/RentalsMap.js文件中:

     export default GoogleApiWrapper({
           apiKey: "api_key",
     })(RentalsMap);

(返回页首)

工作原理

合同

dapp是围绕DecentralAirbnb.sol合约构建的,该合约包含所有应用程序逻辑并具有以下功能:

核心功能:

  • addRental:允许任何用户通过支付少量费用将其财产添加到租赁列表中
  • bookDates:给定假期开始和结束日期,如果 rantal 可用,它会预订预订
  • chackIfBooked:验证是否为用户日期预订了给定的租赁

管理员函数:(管理员是唯一可以调用此函数的人)

  • 更改房源费用:更改添加新租赁时收取的费用
  • 提款余额:管理员可以提取从收取的上市费中累积的合约余额

用户界面

该应用程序的结构分为 4 页:

  • 主页是应用程序的登录页面,通过输入城市,假期的持续时间和客人数量,用户可以检查所有可用的属性,并可以比较它们的价格和不同的设施。

  • 租赁页面是用户在输入假期信息后被重定向的地方,它包含符合用户要求的所有属性的列表,并在Google地图提供的地图上显示这些属性的位置

  • 每个用户都有自己的仪表板,可以通过单击页面顶部的帐户按钮来访问它,此仪表板显示列出的所有用户财产以及他预订的预订。

  • 在仪表板页面中有一个按钮“添加租金”,它将用户重定向到 AddRental 页面,他可以通过提供一组元数据(物业名称、城市、纬度、经度、描述、最大客人数量、每天租金价格(以 $ 为单位)来列出新的租金),请注意,提供确切的属性(纬度、 经度),因为它们后来用于在谷歌地图上显示位置

(返回页首)

如何使用

完成所有安装和设置步骤后,您需要通过运行以下命令将智能合约部署到甘纳许网络:

cd hardhat
npx hardhat run scripts/deploy-airbnb.js --network ganache

这将创建一个 config.js 文件和一个工件文件夹,并将它们传输到 src 文件夹,以启用合约和 UI 之间的交互

如果你想测试去中心化Airbnb合约的功能,你可以通过运行以下命令来实现:

npx hardhat test

要启动应用程序,您必须返回去中心化Airbnb文件夹并运行以下命令:

yarn start

[/hidecontent]

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
《王者荣耀》10V10玩法大升级:全新神祈之地
专注绿色研发 深耕技术改造
新书揭秘黄仁勋1997年豪言:我们要消灭Intel!
解锁新科技!三星手机新专利曝光:可更换镜头组件
安徽合肥:建设长三角元宇宙创新发展第一区

首页

分类

定制方案

消息

我的