首页 > 其他分享 >[4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事

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

时间:2023-05-25 18:06:29浏览次数:99  
标签:https 浅谈 NFT js Web3 API InfruWeb3 摸鱼 Infura

事情起因:

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

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


[4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事_js库_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 "[email protected]"

```


这个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

第五阶段:体会

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

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

标签:https,浅谈,NFT,js,Web3,API,InfruWeb3,摸鱼,Infura
From: https://blog.51cto.com/u_15784394/6350497

相关文章

  • 浅谈GitHub——程序员的圣地
    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(G......
  • 浅谈斐波那契数列和卡特兰数
    斐波那契数列斐波那契数列是我们较为熟悉的一类数列了,在学习递归和递推的时候我们就已经能求解\(n\)较小的情况了;斐波那契数列的定义如下:\[\left\{\begin{matrix}F_{n}=0&n=0\\F_{n}=1&n=1\\F_{n}=F_{n-1}+F_{n-2}&n\ge2\end{matrix}\right.\]卢卡斯数列卢卡斯数列......
  • 浅谈 树上带权最长最短路径,决策包容性与点分树
    树上带权最长最短路径,决策包容性与点分树\(\text{preface}\)最近学习了点分树相关的内容,也碰巧见识到了许多……树上路径问题(非负权),最长或是最短,有的可以用点分治(树)解决,有的可以用线段树解决,有的需要深层次挖掘性质,就在这里做一个小小地总结了一些另类的方法。1.树上带权最长......
  • 浅谈TCP协议的发生过程
    1.TCP协议1.1TCP协议的性质面向连接的、可靠的、基于字节流至于为什么面向连接,又为什么可靠,基于字节流的,等后面便可知道.1.2TCP协议栈收发数据的四个阶段创建套接字连接服务器收发数据断开服务器连接,删除套接字1.3TCP头部格式2.创建套接字2.1首先理解......
  • 浅谈POI数据在互联网旅游领域中的应用(一)
    首先了解下,什么是POI?POI是英文"PointofInterest"的缩写,直译过来叫“兴趣点”,有的人也叫它“信息点”。简单来说就是可以用经纬度表示的、对人有意义的地图上的点。我们平时使用滴滴打车的上车地点、使用大众点评发掘的各种餐厅、你家楼下的公共厕所,只要对你有意义,都可以算POI数据......
  • 2020校招生面试浅谈
    最近在招聘校招生,也看了很多简历,结合自己面试的经历,简单聊聊校招生该如何准备面试。一个漂亮的简历简历首先要漂亮,至少要有一定的美化和包装,对于校招生来说,学校教育背景、学习成绩是最重要的,项目和实习则是锦上添花。对于项目和实习经验,个人觉得有即可,不要求非常的好,不一定要去世界......
  • 浅谈同余3(扩展中国剩余定理,扩展BSGS)
    距离上一篇已经四个月了,我来填坑了上一篇:$浅谈同余2(扩展欧几里得,中国剩余定理,BSGS)$(https://www.cnblogs.com/xyy-yyds/p/17418472.html)0x50扩展BSGS$O(\sqrtn)$【模板】扩展BSGS/exBSGS 题目背景题目来源:SPOJ3105Mod题目描述给定$a,p,b$,求满足$a^x≡b\pmodp......
  • 浅谈同余1(常用定理和乘法逆元)
    点个赞吧,球球了~下一篇:$浅谈同余2(扩展欧几里得,中国剩余定理,BSGS)$https://www.acwing.com/file_system/file/content/whole/index/content/7882318/ $\LaTeX$太多了,分成几个部分0x00总写(瞎说)同余是数学中非常重要的东西,这里会写出同余的基本运用若$a\bmodm=b\bmo......
  • 浅谈物联网平台的重要性以及建设展望
    随着物联网(InternetofThings,简称IoT)技术的快速发展,物联网平台已成为连接各种设备,处理大量数据,并为用户提供智能服务的关键工具。在此背景下,深入理解物联网平台的重要性,以及对其未来建设的展望显得尤为重要。物联网平台在链接设备、管理数据以及提供服务等方面具有重要价值:在设......
  • 4月份摸鱼计划奖励已经收到了,感谢网站
    4月份参加了网站的摸鱼计划,连续发文21天,得到奖品卫衣一件。另外,很幸运的中了一次抽奖,获得一份凌美(LAMY)宝珠钢笔。礼物都不是很贵,但是可以感受到网站深深的情义,可以激励自己以后创作更多优秀的文章。特此感谢网站,祝网站越办越好!......