Coder Social home page Coder Social logo

satran004 / aion-graphql Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 3.0 30.8 MB

A GraphQL Server for AION Blockchain.

Home Page: https://aion-graphql.com

License: GNU General Public License v3.0

C 51.47% Java 43.75% C++ 0.35% HTML 2.48% Groovy 1.83% Solidity 0.13%
graphql aionnetwork blockchain

aion-graphql's Introduction

GraphQL interface for Aion Blockchain

Join the chat at https://gitter.im/aion-graphql/Lobby

Manual

API Doc: Aion GraphQL API

This project provides GraphQL endpoint to query Aion blockchain. It is using AION java api to communicate with Aion blockchain.

It also support REST Api endpoints. The REST api development is still in progress. You can check supported REST apis here.

https://api.aion-graphql.com/swagger-ui.html

Tested on:

  • Ubuntu 16.04 LTS, MacOS
  • Java 10.x

The following apis are currently supported :

  • blockApi
  • txnApi
  • accountApi
  • adminApi
  • chainApi
  • netApi
  • walletApi
  • contractApi

For detail information, please visit this API page

The project will be enhanced to support other read and write operations.

1. Setup from Binary

Download the latest release binary from GitHub repo.

$> unzip aion-graphql-dist-[version].zip

or

$> tar xvf aion-graphql-dist-[version].tar

Go to the extracted folder aion-graphql-dist-[version]

Update Config

Edit config/application.yml to provide aion kernel rpc host and port

example: tcp://x.x.x.x:8547

Start GraphQL server

From aion-graphql-dist-[version] folder, execute the following command to start the server.

$> bin/aion-graphql

on Windows :

bin\aion-graphql.bat

Issue with Aion 0.3.2 : If you face any connnection issue with Aion Kernel 0.3.2, please check this issue #10 for workaround.

Note: Make sure you start the server inside aion-graphql-dist-[version] folder only. Starting server inside bin folder will not work.

2. Build from Source

$> git clone https://github.com/satran004/aion-graphql.git

$> ./gradlew clean build -x integrationTest

To run

$> export rpc_endpoint=tcp://[kernel-host]:8547

$> ./gradlew bootRun

If you want to test GraphQL API on the browser, try the following url

http://[host]:[port]/playground.html

After running the above command, GraphQL endpoint can be accessed through the following url from your application :

http://[host]:[port]/graphql

Demo - Aion GraphQL Playground

Aion GraphQL Playground Demo

aion-graphql's People

Contributors

satran004 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

aion-graphql's Issues

Usage with different AION releases

Hey Satya, this project is interesting and very useful. Would it be possible to create a Gitter channel to discuss the project. Myself and @arjitkhullar will be exploring this for future projects. Is this library built to work with any AION version or is this a specific version?

Provide api to return transaction payload for contract deploy and method calls

Currently, the contract call apis support transaction signing only in server side through default account in the kernel node. This enhancement plans to return the transaction payload which can be signed independently in the client side.

  • Provide api to return transaction payload for contract deploy from both contract source and compiled code. The encoding will be done through Abi encoder.
  • Provide api to return transaction payload for contract method call with the encoded constructor arguments.
  • The return transaction object can then be signed in client side code and sent to server for processing through txApi's sendTransaction() / call()

sendRawTranaction is throwing exception.

org.satran.blockchain.graphql.exception.BlockChainAcessException: Function exception!
at org.satran.blockchain.graphql.impl.aion.service.TxnServiceImpl.lambda$sendRawTransaction$15(TxnServiceImpl.java:486)
at org.satran.blockchain.graphql.impl.aion.service.dao.AionBlockchainAccessor.call(AionBlockchainAccessor.java:34)
at org.satran.blockchain.graphql.impl.aion.service.TxnServiceImpl.sendRawTransaction(TxnServiceImpl.java:481)
at org.satran.blockchain.graphql.resolvers.TxnMutator.sendRawTransaction(TxnMutator.java:49)
at org.satran

Secure connection to Aion Kernel 0.3.2 is not working

In Aion Kernel 0.3.2, secure connection is enabled by default. The current released version of Aion Graphql (0.4.0) is not able to connect to Aion kernel 0.3.2 when secure connection is true.

Workaround:

  1. Disable secure connection for Java Rpc port in Aion kernel.
 <java active="true" ip="0.0.0.0" port="8547"> 
        <secure-connect>**false**</secure-connect>
 </java> 
  1. In Aion GraphQL installation folder, edit config/apiconfig.xml to disable secure connection in client.
<secure-connect>false</secure-connect>

Note: apiconfig.xml is automatically generated after the first run of aion-graphql server.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.