Web2.0架构由前端、后端、数据库等组件组成。【18I链上合约-259l开发系统3365】同样的,Web3.0架构也可以类似地分为前端、后端、数据库,区别在于DApps前端架构主要专注于与智能合约(去中心化程序)的通信,后端逻辑通过智能合约实现,然后部署到共享状态机(也就是区块链网络),不需要集中式数据库或Web服务器,而是可以利用区块链在计算机网络之间分发应用程序。
除了新的架构,想要实现Web3.0的广泛应用,还有一些现实问题需要克服。
“在服务用户方面,我们可以将Web3.0比作能够理解用户需求的定制化人工智能助手,它需要大量的个人数据和用户习惯作为支撑。”李克秋介绍,Web3.0为了保护用户对数据的所有权,需要依靠数据加密与区块链交互,这势必对浏览器客户端的计算和存储能力有着更高的要求,“不过随着计算、存储技术以及硬件设施的不断升级,这一问题应该能够得到有效解决”。
现在我们的合约已经写好了,我们的配置文件也可以使用了,现在是时候写我们的合约部署脚本了。
进入到 scripts/文件夹,创建一个名为 deploy.js 的新文件,添加以下内容:
async function main() { const MyNFT = await ethers.getContractFactory("MyNFT")
// Start deployment, returning a promise that resolves to a contract object const myNFT = await MyNFT.deploy() await myNFT.deployed() console.log("Contract deployed to address:", myNFT.address) }
main() .then(() => process.exit(0)) .catch((error) => { console.error(error) process.exit(1) }) Hardhat 在合约教程中对这些代码的每一行都做了很好的解释,我们在这里采用了他们的解释。
const MyNFT = await ethers.getContractFactory("MyNFT"); ethers.js 中的 ContractFactory 是一个用于部署新智能合约的抽象,所以这里的 MyNFT 是我们 NFT 合约实例的工厂。当使用 hardhat-ethers 插件时,ContractFactory 和合约实例默认连接到第一个签名者。
const myNFT = await MyNFT.deploy(); 在 ContractFactory 上调用 deploy()将开始部署,并返回一个解析为 Contract 的 Promise。这是一个对象,为智能合约的每个功能都有一个对应的方法。