GRAP:在以太坊上构建 GraphQL API

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

接上篇以太坊全栈开发完全指南

dapp的数量继续爆炸性增长,对开发人员的需求也越来越大。

作为一名刚进入这个领域的开发人员,我很快就发现,与区块链交互和与传统网络的交互有很大的不同。在以太坊(或者其他区块链)上,数据不可以直接从其他app或前端拿来用,你需要重新组织数据并给数据建索引,以便可以有效的检索。

在传统网络上,这是数据库在中心化技术栈中所做的工作,但在Web3栈中缺少索引层。

在传统的web堆栈中,数据库、服务器和api在将数据返回到应用程序(通常是通过某种http请求)之前,会对数据进行查询、筛选、排序、分页、分组和连接。但直接从以太坊或其他区块链读取数据时,这些类型的数据转换是不可能的。

过去,开发人员通过建立自己的中心化索引服务器来解决这个问题——从区块链中提取数据,存储在数据库中,然后通过API公开。这需要大量的工程和硬件资源,并破坏了去中心化的重要的安全特性。

如何在区块链数据之上构建一个可以轻松部署到去中心化网络基础设施的API?让我们来了解一下。

去中心化网络基础设施

去中心化网络通常被称为Web3。Web3在我们今天已经熟知的互联网基础上增加了这些特点:

去中心化的

可验证的

Poly Network攻击者已在以太坊等网络上转移价值超500万美元加密货币:金色财经报道,派盾(PeckShield)监测显示,跨链互操作协议Poly Network攻击者已在以太坊、BNB Chain、Polygon上转移价值超过500万美元加密货币,包括将1500枚ETH(约288万美元)转入0x23f4地址、将440枚ETH(约84.4万美元)转入0xc8Ab地址、将300枚ETH(约57.5万美元)转入0xfD3E地址。[2023/7/3 22:14:32]

抗审查的

自治的

想更多了解Web3,请视频

为了实现去中心化,协议定义了提供一系列数字服务的网络,如计算、存储、带宽、身份和其他没有中介的网络基础设施。这些协议通常分布在多个节点上,使任何希望成为网络一部分并提供服务的人都能参与。

以确保网络本身的安全性和完整性,还需要制定规则激励网络参与者为任何消费它们的人提供最高质量的服务。这通常是通过智能合约中编写的共识机制来实现的,合约实现了各种类型的博弈论和加密经济设计。

什么是真正的去中心化的服务?

构建在TheGraph之上

本文中,我们将研究这样一个协议:TheGraph,以及如何使用存储在以太坊区块链中的数据来构建和部署自己的GraphQLAPI。

Graph是一个索引协议,用于在像以太坊区块链或IPFS这样的网络上进行查询。任何人都可以建立和发布开放的API,称为subgraph——让数据访问变得容易。

USDC Treasury在以太坊网络增发超2157万枚USDC:金色财经报道,Whale Alert数据显示,北京时间3月30日00:54-01:25,USDC Treasury在以太坊网络上增发三笔总计21570800.5枚USDC。[2021/3/30 19:27:30]

subgraph定义了你希望通过GraphQLAPI提供的数据、数据源和数据访问模式。开发者可以选择直接使用别人已经部署的subgraph,或者自己定义并部署subgraph。

开发者可以通过将他们的subgraph部署到托管服务或网络中来创建开放的API,根据其API的使用量来收费。

subgraph主要由下面几个部分组成的:

1

exportfunctionhandleTransfer(event:TransferEvent):void{lettoken=Token

token

}

这些映射将处理token被创建、转移或者更新时的事件。当这些事件发生时,映射将把数据保存到subgraph中。

运行构建

接下来,让我们运行构建,以确保一切配置正确,运行build命令:

$graphbuild

如果构建成功,应该看到在你的根目录中生成了一个新的build文件夹。

部署subgraph

Pax Treasury在以太坊网络增发近1271万枚BUSD:金色财经报道,Whale Alert数据显示,北京时间11月25日00:50,Pax Treasury在以太坊网络上增发12,708,450枚BUSD,增发哈希值为:0x6b902067b36ca7748b9d6e14d20a086f16e168f3156a3d63a0ad3e7f731f3cf9。[2020/11/25 22:01:02]

要部署,我们可以使用GraphCLI运行deploy命令。要部署,首先需要为你在GraphExplorer中创建的subgraph复制Accesstoken。

图形浏览器

接下来,运行以下命令:

$graphauthhttps://api

token

}

现在我们可以重新部署subgraph了:

$yarndeploy

一旦subgraph被重新部署,我们就可以通过时间戳查询来查看最近创建的NFTS。

{tokens(orderBy:createdAtTimestamp,orderDirection:desc){idtokenIDcontentURImetadataURI}}

这个项目的代码库位于这里

接下来的步骤

如果你有兴趣了解更多关于Web3、构建Dapps或构建subgraph的信息,请查看以下资源。

动态 | 澳大利亚储备银行进行在以太坊网络支付系统运行CBDC的模拟测试:1月16日消息,澳大利亚储备银行(RBA)近期透露,其模拟了在以太坊网络为基础的批发支付系统中使用中央银行数字货币(CBDC),以调查央行数字货币的可能性。(Bitcoinist)[2020/1/16]

TheGraphonTwitter-@graphprotocol

全栈式以太坊开发完整指南

TheGraphDiscord

SolidityDocs

以太坊DeveloperDocumentation

AustinGriffithonTwitter@austingriffith&ScaffoldEth

CryptoZombies

本翻译由CellNetwork赞助支持。

来源:https://dev.to/dabit3/building-graphql-apis-on-ethereum-4poa

参考资料

登链翻译计划:https://github.com/lbc-team/Pioneer

翻译小组:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

声音 | Primitive Ventures创始合伙人:所有稳定币或将在以太坊区块链上进行:Bitfinex CTO发推表示,昨日创建的1亿枚USDT仅是为了将Tether从OMNI迁移至以太坊。对此,Primitive Ventures创始合伙人Dovey Wan称,币安也将USDT充值体现地址切换到以太坊的ERC20。只要以太坊成为这些合成性资产(synthetic assets)的首选,总有一天,所有的稳定币都将在以太坊上区块链进行。此前,7月3日,币安发布公告称,USDT默认的充值提现地址将由OMNI网络切换为ERC20网络。原OMNI网络的USDT可以继续充值并上账。[2019/7/5]

以太坊全栈开发完全指南:https://learnblockchain.cn/article/2383

dapp:https://ethereum.org/en/dapps/

使用Solidity:https://twitter.com/CryptoCobain/status/1371901082113351680?s=20

需求:https://twitter.com/FurqanR/status/1389393957126246403?s=20

刚进入这个领域:https://twitter.com/dabit3/status/1379157277660299264

Web3栈:https://beta.web3index.org/blog/introducing-the-web3-index

Web3:https://ethereum.org/en/developers/docs/web2-vs-web3/

视频:https://www.youtube.com/watch?v=KHwVljhq7NQ

协议:https://www.youtube.com/watch?v=j2rXJLW_93o

激励:https://www.youtube.com/watch?v=Nurp3Foqf2w

加密经济设计:https://thegraph.com/blog/modeling-cryptoeconomic-protocols-as-complex-systems-part-1

TheGraph:https://thegraph.com/

IPFS:https://ipfs.io/

已经部署:https://thegraph.com/explorer/

manifest:https://thegraph.com/docs/define-a-subgraph#the-subgraph-manifest

ABI:https://docs.soliditylang.org/en/v0.8.4/abi-spec.html

GraphCLI:https://github.com/graphprotocol/graph-cli

Zora智能合约:https://etherscan.io/address/0xabEFBc9fD2F806065b4f3C237d4b59D9A97Bcac7

Node.js:https://nodejs.org/en/

nvm:https://github.com/nvm-sh/nvm

fnm:https://github.com/Schniz/fnm/blob/master/docs/commands.md

GraphExplorer:https://thegraph.com/explorer/dashboard

dashboard:https://thegraph.com/explorer/dashboard

ZoraTokenContract:https://etherscan.io/address/0xabEFBc9fD2F806065b4f3C237d4b59D9A97Bcac7#code

这里:https://github.com/dabit3/building-a-subgraph-workshop/tree/main/Zoranftgraph

全栈式以太坊开发完整指南:https://learnblockchain.cn/article/2383

TheGraphDiscord:https://thegraph.com/discord

SolidityDocs:https://docs.soliditylang.org/

以太坊DeveloperDocumentation:https://ethereum.org/en/developers/docs/

@austingriffith:https://twitter.com/austingriffith

ScaffoldEth:https://github.com/austintgriffith/scaffold-eth

CryptoZombies:https://cryptozombies.io/

CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10029655.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

DoraHacks联手Cryptosat完成太空高安全性可信启动实验

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

UNIHTT:币虎6月4日上线GinCoin(GIN)

尊敬的用户: 币虎将上线GinCoin,并在创新区开通GIN/USDT交易市场,具体详情如下:1.开放充币:2021年6月4日14:00;2.开放交易:2021年6月4日18:00;3.开放提币.

LTCSWAP:以太坊外,那些你还不知道的「Uni与Aave」

今天的加密行业正在快速地向多链共存的方向演进。仅仅在一年之前,市场上能够称得上拥有成熟生态的公链,还只有以太坊一个选手。但从去年底开始,BSC、Solana等公链的生态逐渐崛起.

[0:15ms0-0:706ms