[4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事
  QtpjMRSUUfXb 2023年11月02日 98 0

事情起因:

https://marketing.csdn.net/p/6798543ad6fdaad547c6431dd7df955a

[4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事_区块链


[4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事_区块链_02

之前没接触过区块链这块,这次随即报名NFT这块。

下面谈我的学习过程:

第一阶段 资料搜索(简单看看就行)

什么是NFT?

NFT是“非同质化代币”的缩写,是一种基于区块链技术的数字资产。和比特币等传统加密货币不同的是,NFT是独一无二的,因此不能被直接交换或替换。每个NFT都有一个唯一的数字识别码,具有不可替代性和唯一性。这使得NFT被广泛应用于数字艺术、游戏、音乐、体育、虚拟房地产等领域,使数字内容的拥有权和价值得到更好的保障。NFT的流通和交易都通过区块链技术进行,使得数字艺术品等数字资产的传统买卖变得更加方便、透明和安全。

什么是Infura?

Infura提供了一套完整的NFT API套件,方便开发者快速搭建自己的区块链应用程序,下面是使用Infura NFT API套件搭建步骤:1. 注册Infura账号并创建项目:在Infura官网上注册账号并创建项目,得到一个项目ID。

  1. 安装Web3.js库:你需要下载Web3.js库,可以通过npm或者手动下载的方式获得这个库。
  2. 初始化Web3.js库:通过Web3.js库的API,你可以初始化一个Web3对象。
  3. 设置网络连接和NFT合约:通过Web3.js库的API,你可以设置连接网络和选择NFT合约。
  4. 构建API请求:你可以使用Infura NFT API套件的API请求构建一个HTTP请求。
  5. 获得API响应:你可以使用Web3.js库的API获取到响应结果,并且把响应结果解析成JSON格式。
  6. 根据API响应结果进行进一步开发:你可以根据API响应结果自定义开发你的区块链应用程序。

需要注意的事项:

  1. 在使用Infura NFT API套件时,你需要对其费用进行评估。Infura提供了限额免费套餐,但是如果你需要更多的流量,需要购买更高级别的套餐。
  2. 在使用Infura NFT API套件时请确保你的网络连接是可靠的。如果你的网络连接不可靠或者过于拥挤,可能会影响NFT API套件的响应速度和稳定性。
  3. 在使用NFT API套件时,请确保你已经获得了合法的用户授权,在未经授权的情况下使用API套件可能会产生法律风险。

什么是Infura NFT API SDK?

Infura NFT API的SDK可以用于访问API。您可以使用多种编程语言(如JavaScript、Python、Java等)来编写代码,访问Infura NFT API,并获取数据。以下是使用JavaScript SDK访问Infura NFT API的示例代码:


```javascript

const { createInfuraClient } = require('@infura/nft');


const client = createInfuraClient({

  projectId: 'your-project-id',

  projectSecret: 'your-project-secret',

});


// Example query for fetching a NFT from its contract and token ID.

const query = `{

  nft(id: {contract: "0x06012c8cf97bead5deae237070f9587f8e7a266d", token: "0x23c425e6c1d3f00e451a8fad21651755d1eef6cf"}) {

    tokenId

    metadata {

      name

      image

    }

  }

}`;


client.request(query).then((data) => {

  console.log('NFT metadata:', data.nft);

}).catch((error) => {

  console.error('Error fetching NFT metadata:', error);

});

```


这是一个简单的示例代码,用于通过Infura NFT API获取以太坊区块链上的某个非同质化代币(NFT)的元数据。要使用此代码,请将`your-project-id`和`your-project-secret`替换为您在Infura上创建的项目的ID和密钥。还可以调整查询以更改要获取的NFT的合同地址和令牌ID。


要在项目中使用Infura NFT API SDK,请根据您所使用的编程语言查看相关文档或示例代码。

Infura NFT API使用:

Infura NFT API套件是一个基于以太坊区块链的API套件,它使得非常容易为你的应用程序集成NFT功能。在使用Infura NFT API套件前,你需要首先在Infura网站上注册一个账户,然后创建一个项目并获取到你的项目ID。


接下来,你需要调用Infura的NFT的API,例如:


```

curl "https://ipfs.infura.io:5001/api/v0/add?stream-channels=true" -X POST -H "Content-Type: multipart/form-data" -F "file=@myNFT.jpg"

```


这个API调用将返回一个IPFS哈希值,你可以将这个哈希值存储在以太坊上,以创建你的NFT。


为了查询NFT,Infura提供了一个API:


```

https://ipfs.infura.io/ipfs/{ipfsHash}```


这个API将返回与IPFS哈希值对应的NFT的元数据。


Infura还提供了其他的API,例如获取当前区块链的状态,查询以太坊地址余额等。


总的来说,使用Infura NFT API套件可以使得集成NFT功能变得非常简单。

Truffle NFT API box:

Truffle NFT API box是用于创建和管理NFT(Non-Fungible Tokens,非同质化代币)的Truffle框架的一个插件。以下是使用Truffle NFT API box创建NFT的基本步骤:1. 安装Truffle NFT API box插件。在命令行中输入以下命令:

truffle unbox nftapi
  1. 编写智能合约代码。在contracts文件夹下创建一个Solidity文件,用于定义NFT智能合约,例如:
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract MyNFT is ERC721 {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    constructor() ERC721("MyNFT", "MNFT") {}

    function mintNFT(address recipient, string memory tokenURI) public returns (uint256) {
        _tokenIds.increment();

        uint256 newItemId = _tokenIds.current();
        _mint(recipient, newItemId);
        _setTokenURI(newItemId, tokenURI);

        return newItemId;
    }
}

这个智能合约定义了一个名为MyNFT的NFT合约,使用OpenZeppelin的ERC721库来实现。合约的构造函数设置了NFT的名称为"MyNFT",符号为"MNFT"。还定义了一个名为mintNFT的函数,用于创建新的NFT。函数接受两个参数:NFT接收者的地址和NFT的元数据URI。函数返回新NFT的ID。

  1. 编译和部署合约。在命令行中输入以下命令:
truffle compile
truffle migrate

这将编译并部署智能合约,使其准备好在区块链上创建新的NFT。

  1. 使用API创建NFT。Truffle NFT API box提供了一个RESTful API,可以使用它来创建和管理NFT。你可以使用Postman或类似的工具来向API发送HTTP请求。下面是创建新NFT的API请求样例:
POST http://localhost:3000/token/create
Content-Type: application/json

{
    "recipient": "0x1234567890123456789012345678901234567890",
    "uri": "https://example.com/my_nft/1",
    "contract": "0x9876543210987654321098765432109876543210",
    "wallet": "0x0123456789012345678901234567890123456789",
    "network": "development"
}

这个API请求将创建一个新NFT,发送到地址为0x1234567890123456789012345678901234567890的接收者,元数据URI为https://example.com/my_nft/1。合约地址为0x9876543210987654321098765432109876543210,发送交易的钱包地址为0x0123456789012345678901234567890123456789。请确保替换实际地址和数据。

这就是使用Truffle NFT API box创建NFT的基本步骤。


第二阶段:搭建软件环境(要反复琢磨)

https://docs.infura.io/infura/、https://github.com/truffle-box/nft-box这两个链接是比赛必须用到的,https://infura.csdn.net/consensys/news/list、https://infura.csdn.net/consensys/video/list 是文章及视频参考链接

https://infura.csdn.net/consensys/video/19482

第三阶段:动手操作(是一个边百度边操作的过程)

根据以下资料:

要在Infura上使用Web3.js库,您需要首先确保您已经安装了Web3.js库。您可以通过运行以下命令在命令行界面中安装Web3.js库:```

npm install web3

```


一旦Web3.js库安装成功,您可以将它们添加到您的代码中。如果您在Infura上使用Web3.js库,则需要将您的Web3对象连接到Infura节点。您可以使用以下代码连接到Infura节点:


```js

const Web3 = require('web3');

const web3 = new Web3(new Web3.providers.HttpProvider('https://mainnet.infura.io/v3/your-project-id'));

```


请注意,您需要将“your-project-id”替换为您在Infura上创建的项目ID。


一旦您连接到Infura节点,您就可以开始使用Web3.js库中的方法进行智能合约的交互和数据查询。


要在Infura上使用Web3.js库,您需要首先确保您已经安装了Web3.js库。您可以通过运行以下命令在命令行界面中安装Web3.js库:```

npm install web3

```


一旦Web3.js库安装成功,您可以将它们添加到您的代码中。如果您在Infura上使用Web3.js库,则需要将您的Web3对象连接到Infura节点。您可以使用以下代码连接到Infura节点:


```js

const Web3 = require('web3');

const web3 = new Web3(new Web3.providers.HttpProvider('https://mainnet.infura.io/v3/your-project-id'));

```


请注意,您需要将“your-project-id”替换为您在Infura上创建的项目ID。


一旦您连接到Infura节点,您就可以开始使用Web3.js库中的方法进行智能合约的交互和数据查询。


web3j是一个以太坊Java库,它没有特定的操作系统要求,因此可以在任何支持Java的操作系统上运行,包括Windows 7. 如果想在Windows 7上使用web3j,您需要先安装Java Development Kit (JDK),然后下载并安装web3j。 


您可以在以下网址下载适用于Windows的JDK:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 


要下载web3j,请访问该库的GitHub页面https://github.com/web3j/web3j并下载最新版本。在解压缩和设置web3j之后,您就可以在Windows 7上使用它来连接以太坊网络并开发智能合约。


linea测试网的水龙头:http://faucet.goerli.linea.build/

第四阶段:遇到问题(总结经验)

1.用win10系统

因为有自带的POWERSHELL优于自带的CMD管理器

2.安装.js环境

3.安装npm install web3

报错npm not find 就安装npm

4.Truffle NFT API box 下载用科学上网 git下载

安装git ,

在要安装文件夹里点击git bash here

通过个git clone https://网址下载

5.注册Infura

第五阶段:体会

这个区块链我国还不成熟,属于蓝海,有电子钱包,有合约,

目前我看到电子钱包申请由限制。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
QtpjMRSUUfXb