zl程序教程

您现在的位置是:首页 >  其他

当前栏目

分投趣(Fintoch)开发系统模式技术

2023-06-13 09:18:26 时间

  NFT是我们可以用来表示独特物品所有权的代币。他们让我们对艺术品、收藏品甚至房地产等事物进行代币化。他们一次只能有一个官方所有者,并且受到以太坊区块链的保护——没有人可以修改所有权记录或复制/粘贴新的NFT。

  什么是NFT标准或ERC-721?

  ERC-721是最常见的NFT标准。如果您的智能合约实现了某些标准化的API方法,则可以将其称为ERC-721非同质代币合约。

  这些方法在EIP-721中指定。像OpenZeppelin等开源项目通过将最常见的ERC标准实现为可重用库来实现,从而简化了开发过程。

  什么是铸造NFT?

  通过铸造NFT,您可以在区块链上发布一个独特的代币。此代币是您的智能合约的一个实例。

  每个代币都有一个唯一的tokenURI,它在符合特定模式的JSON文件中包含您的资产的元数据。元数据是您存储有关NFT信息的地方,例如名称、图像、描述和其他属性。

  “ERC721元数据架构”的JSON文件示例如下所示:

  {

  "attributes":[

  {

  "trait_type":"Shape",

  "value":"Circle"

  },

  {

  "trait_type":"Mood",

  "value":"Sad"

  }

  ],

  "description":"A sad circle.",

  "image":"https://i.https://img.chengxuka.comur.com/Qkw9N0A.jpeg",

  "name":"Sad Circle"

  如何存储NFT的元数据?

  存储NFT元数据的主要方式有三种。

  首先,您可以将信息存储在链上。换句话说,您可以扩展您的ERC-721并将元数据存储在区块链上,但是这可能会很昂贵。

  第二种方法是使用IPFS。

  第三种方法是让您的API返回JSON文件。

  通常首选第一种和第二种方法,因为您无法调整底层JSON文件。对于本项目的范围,我们将选择第三种方法。

  链上所有的应用程序(dApp)也都是由智能合约驱动的,不论是借贷协议、去中心化交易所(DEX)、预言机或NFT市场。这些协议都是由一个或多个智能合约组成的,而合约里面都会写好各式功能,让协议能正常被用户使用。例如我们刚刚举例的“Swap Exact Tokens for Tokens”功能,就能在下图合约上看到当用户地址呼叫这个功能时,合约会做什么相对应的操作。

  智能合约与链的互动

  写智能合约的语言有很多中,每一条链支援的语言也不太一样,常见的语言有Solidity,Vyper和Rust。在链上执行合约的环境称为虚拟机器(VM),不同的链也有各自不同的环境(例如以太坊的就称为EVM),而这些环境能适用的程序语言也不同。像是以太坊的EVM就只能执行由Solidity写的智能合约,这也让Solidity成为现在最普遍的智能合约语言。