ArtemKolodko / Artion-API-GraphQL

GraphQL API for Fantom Artion

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Artion-API-GraphQL

GraphQL API server for Fantom Artion v2 - backend for Artion-Client-V2.

Build using make:

make

Create JSON config file by doc/config.example.json example.

Requirements for run:

  • Locally running go-opera - configure IPC file in node.url in config file.
  • Local MongoDB for data scanned from chain - configure in db section of config file.
  • MongoDB shared by all Artion nodes for storing users data - shared_db section.
  • IPFS node for loading token images and token JSON metadata file - two options:
    • Local IPFS node configured in ipfs.url
    • Pinata gateway configured in ipfs.gateway
  • For uploading images into IPFS, Pinata bearer needs to be configured in ipfs.gateway_bearer (even when local IPFS node is used otherwise!)
  • For sending email notifications, Sendgrid API domain and key needs to be configured in notification.sendgrid section.

Before first start you need to initialize the MongoDB database. If you want to use other than the official contracts on mainnet, you will need to update observed.json appropriately first.

mongoimport --db=artion --collection=observed --file=doc/db/observed.json
mongoimport --db=artion --collection=status --file=doc/db/status.json

For the shared MongoDB database:

mongoimport --db=artionshared --collection=colcats --file=doc/db/colcats.json
mongoimport --db=artionshared --collection=collections --file=doc/db/collections.json

When configured, run the Artion api server:

build/artionapi -cfg my-config-file.json

For production deployment check systemd example in doc/systemd to install the api server as systemd service.

As soon as the api server is started, you can access GraphiQL testing interface at http://localhost:7373/graphi.

To connect Artion-Client-V2 update the providers list in app.config.js to use http://localhost:7373/graphql.

About

GraphQL API for Fantom Artion

License:GNU General Public License v3.0


Languages

Language:Go 99.6%Language:Makefile 0.3%Language:HTML 0.1%Language:Shell 0.1%