请安装或已安装以下内容:
nodejs 和 yarn[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
这是一个使用 Hardhat/React js 构建的全栈 web3 去中心化应用程序,因此该项目分为 2 个主要部分:
克隆存储库并通过运行以下命令安装所有必需的软件包:
git clone https://github.com/kaymen99/DecentralAirbnb.git
cd DecentralAirbnb
yarn
启动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"
由于 infura 最近删除了其免费的 IPFS 网关,我使用 api 将租赁图像存储到 IPFS 中,这个 API 就像 infura 一样简单,它需要创建一个免费帐户和一个新的 api 令牌,您可以在此处完成,当您完成将 api 令牌添加到文件中时:web3.storage
src/utils/StoreContent.js
const web3storage_key = "YOUR-WEB3.STORAGE-API-TOKEN";
在此处获取Google maps api-key(免费),并将其添加到src/component/RentalsMap.js文件中:
export default GoogleApiWrapper({
apiKey: "api_key",
})(RentalsMap);
(返回页首)
dapp是围绕DecentralAirbnb.sol合约构建的,该合约包含所有应用程序逻辑并具有以下功能:
该应用程序的结构分为 4 页:
主页是应用程序的登录页面,通过输入城市,假期的持续时间和客人数量,用户可以检查所有可用的属性,并可以比较它们的价格和不同的设施。
租赁页面是用户在输入假期信息后被重定向的地方,它包含符合用户要求的所有属性的列表,并在Google地图提供的地图上显示这些属性的位置
(返回页首)
完成所有安装和设置步骤后,您需要通过运行以下命令将智能合约部署到甘纳许网络:
cd hardhat
npx hardhat run scripts/deploy-airbnb.js --network ganache
这将创建一个 config.js 文件和一个工件文件夹,并将它们传输到 src 文件夹,以启用合约和 UI 之间的交互
如果你想测试去中心化Airbnb合约的功能,你可以通过运行以下命令来实现:
npx hardhat test
要启动应用程序,您必须返回去中心化Airbnb文件夹并运行以下命令:
yarn start
[/hidecontent]