事情起因:
https://marketing.csdn.net/p/6798543ad6fdaad547c6431dd7df955a
之前没接触过区块链这块,这次随即报名NFT这块。
下面谈我的学习过程:
第一阶段 资料搜索(简单看看就行)
什么是NFT?
NFT是“非同质化代币”的缩写,是一种基于区块链技术的数字资产。和比特币等传统加密货币不同的是,NFT是独一无二的,因此不能被直接交换或替换。每个NFT都有一个唯一的数字识别码,具有不可替代性和唯一性。这使得NFT被广泛应用于数字艺术、游戏、音乐、体育、虚拟房地产等领域,使数字内容的拥有权和价值得到更好的保障。NFT的流通和交易都通过区块链技术进行,使得数字艺术品等数字资产的传统买卖变得更加方便、透明和安全。
什么是Infura?
Infura提供了一套完整的NFT API套件,方便开发者快速搭建自己的区块链应用程序,下面是使用Infura NFT API套件搭建步骤:1. 注册Infura账号并创建项目:在Infura官网上注册账号并创建项目,得到一个项目ID。
- 安装Web3.js库:你需要下载Web3.js库,可以通过npm或者手动下载的方式获得这个库。
- 初始化Web3.js库:通过Web3.js库的API,你可以初始化一个Web3对象。
- 设置网络连接和NFT合约:通过Web3.js库的API,你可以设置连接网络和选择NFT合约。
- 构建API请求:你可以使用Infura NFT API套件的API请求构建一个HTTP请求。
- 获得API响应:你可以使用Web3.js库的API获取到响应结果,并且把响应结果解析成JSON格式。
- 根据API响应结果进行进一步开发:你可以根据API响应结果自定义开发你的区块链应用程序。
需要注意的事项:
- 在使用Infura NFT API套件时,你需要对其费用进行评估。Infura提供了限额免费套餐,但是如果你需要更多的流量,需要购买更高级别的套餐。
- 在使用Infura NFT API套件时请确保你的网络连接是可靠的。如果你的网络连接不可靠或者过于拥挤,可能会影响NFT API套件的响应速度和稳定性。
- 在使用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
- 编写智能合约代码。在
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。
- 编译和部署合约。在命令行中输入以下命令:
truffle compile
truffle migrate
这将编译并部署智能合约,使其准备好在区块链上创建新的NFT。
- 使用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://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
第五阶段:体会
这个区块链我国还不成熟,属于蓝海,有电子钱包,有合约,
目前我看到电子钱包申请由限制。