Categorygithub.com/metadium/go-delegator
repositorypackage
0.0.0-20190923085903-5a544cf7f34f
Repository: https://github.com/metadium/go-delegator.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Metadium Proxy

License Go Report Card GoDoc

Main functions are MetaID CRUD and relaying JSON-RPC result with metadium nodes.

Contents

Features

  1. JSON-RPC relay with metadium nodes
  2. Proofs for sign and merkle tree such as Ecrecover, DeriveSha, VerifyProof

Prerequisite

  1. Go
  2. Dep
    • Install
    brew install dep
    
  3. Docker
  4. xgo
    • because of compilation for C code used in go-ethereum, we need improved cross-compiler
docker pull karalabe/xgo-latest
go get github.com/karalabe/xgo

Build

  1. Move to root directory of this repo
  2. Build on your preference
  • In case of Lambda that is cross-compile, make or make lambda

  • In case of Lambda with remote branch, make branch=master remote

  • In case of compile for local machine, make local

Test

  1. Move each module directory such as json, rpc and so on
  2. Run testunit
    go test -v
    

Usage

  1. $> proxy [KEY_JSON_PATH] -log_lev=debug -log_out=/log/proxy.log -log_fmt=json
  2. $> proxy [KEY_JSON_PATH] [KEY_JSON_PASSPHRASE] -log_lev=debug -log_out=/log/proxy.log -log_fmt=json
    • log_lev, log_out, log_fmt, log_bot_token and log_bot_chatid are optional
    • description:
      • log_lev: log level
      • log_out: log output location
      • log_fmt: log format, text or JSON
      • log_bot_token: telegram access token
      • log_bot_chatid: telegram chat ID
    • default:
      • log_lev: info
      • log_out: stdout
      • log_fmt: text

Deploy (for AWS Lambda)

  1. Set Lambda on AWS
    • Function package: compressed binary file in $GOPATH/src/{repo}/bin
    • Handler: proxy (binary file name, it is optional)
    • Runtime: Go 1.x
    • (Optional) Include DynamoDB execution role to Lambda execution role
  2. Set API Gateway as proxy on AWS
  3. Add API Gateway as Lambda trigger
  4. Add CloudWatch Logs

Reference

[1] AWS Lambda Go, https://github.com/aws/aws-lambda-go

[2] Go ethereum, https://github.com/ethereum/go-ethereum

[3] IPFS, https://ipfs.io/

[4] IPFS API, https://github.com/ipfs/go-ipfs-api

[5] Cross compiling for ethereum, https://github.com/ethereum/go-ethereum/wiki/Cross-compiling-Ethereum

[6] Xgo, https://github.com/karalabe/xgo

[7] Dep, https://github.com/golang/dep

License

MIT