使用TheGraph的Graph-node对Ethereum与智能合约事件进行处理

一、环境准备

  • Node.js
  • npm
  • docker
  • truffle
  • 智能合约

二、yarn

  1. 默认认为已经安装好了Node环境
  2. 在yarn中文官网根据自己的系统环境安装对应的yarn

三、ganache-cli

  1. 安装
# Yarn
yarn global add truffle ganache-cli
  1. 启动
ganache-cli -h 0.0.0.0

四、IPFS

  1. 进入IPFS官网
  2. 按照文档安装并启动ipfs

五、postgres

  1. 拉取镜像
docker pull postgres
  1. 创建容器并开机启动
docker run --name postgres --restart=always \
	-e POSTGRES_PASSWORD=123456 -d postgres
  1. 创建graph-node数据库

六、graph-node

官方文档

  1. 拉取最新的docker镜像
docker pull graphprotocol/graph-node
  1. 创建容器
docker run -it --name graph-node-ropsten \
  -p 8000:8000 -p 8001:8001 -p 8020:8020 -p 8030:8030 \
  -e GRAPH_ALLOW_NON_DETERMINISTIC_FULLTEXT_SEARCH="true" \
  -e postgres_host=host.docker.internal \
  -e postgres_port=5432 \
  -e postgres_user=postgres \
  -e postgres_pass=123456 \
  -e postgres_db=graph-node \
  -e ipfs=host.docker.internal:5001 \
  -e ethereum=mainnet:https//host.docker.internal:8545 \
  graphprotocol/graph-node:latest

七、将合约部署到ganache

truffle compile
truffle migrate

八、@graphprotocol/graph-cli

官方文档

  1. 安装
# Yarn
yarn global add @graphprotocol/graph-cli
  1. 初始化一个新的subgraph
    在想要创建的地方执行
  graph init \
  --from-contract 0xB7999C5Cb77Ba2933693e902a6660DB63ee70537 \
  --network mainnet \
  --abi ./Tokens.json \
  githubUser/Neu
  1. 修改entity与mapping
  2. 生成代码
yarn codegen
  1. 将subgraph的名字添加到graph-node
yarn create-local
  1. 将subgraph部署到graph-node
yarn deploy-local

总结

还是得多看看官方的文档与其他用户在github上提的issues,一些问题在文档里也是没有的,但是官方在issues中回答了。这一点操作也很迷惑。

你可能感兴趣的:(区块链,Ethereum,graphql,区块链,docker)