Secure and Scalable Decentralized Application Framework
Switch branches/tags
transmute-ipfs@1.0.1-alpha.0.3 transmute-ipfs@1.0.1-alpha.0.2 transmute-ipfs@1.0.1-alpha.0.1 transmute-ipfs@1.0.1-alpha.0.0 transmute-framework@0.2.0 transmute-framework@0.1.61-0 transmute-framework@0.1.52-alpha.0.2 transmute-framework@0.1.52-alpha.0.1 transmute-framework@0.1.52-alpha.0.0 transmute-dashboard@0.2.0 transmute-dashboard@0.1.1-0 transmute-crypto@0.1.1-alpha.0.3 transmute-crypto@0.1.1-alpha.0.2 transmute-crypto@0.1.1-alpha.0.1 transmute-crypto@0.1.1-alpha.0.0 transmute-contracts@0.1.4-alpha.0.3 transmute-contracts@0.1.4-alpha.0.2 transmute-contracts@0.1.4-alpha.0.1 transmute-contracts@0.1.4-alpha.0.0 transmute-cli@0.2.0 transmute-cli@0.1.42-alpha.0.1 transmute-cli@0.1.42-alpha.0.0 transmute-alpha@0.1.1-alpha.0.2 transmute-alpha@0.1.1-alpha.0.1 transmute-alpha@0.1.1-alpha.0.0 transmute-adapter-node-storage@1.0.1-alpha.0.3 transmute-adapter-node-storage@1.0.1-alpha.0.2 transmute-adapter-node-storage@1.0.1-alpha.0.1 transmute-adapter-node-storage@1.0.1-alpha.0.0 transmute-adapter-local-storage@1.0.1-alpha.0.3 transmute-adapter-local-storage@1.0.1-alpha.0.2 transmute-adapter-local-storage@1.0.1-alpha.0.1 transmute-adapter-local-storage@1.0.1-alpha.0.0 transmute-adapter-leveldb@1.0.1-alpha.0.2 transmute-adapter-leveldb@1.0.1-alpha.0.1 transmute-adapter-leveldb@1.0.1-alpha.0.0 transmute-adapter-ipfs@1.0.2-0 transmute-adapter-ipfs@1.0.1-alpha.0.2 transmute-adapter-ipfs@1.0.1-alpha.0.1 transmute-adapter-ipfs@1.0.1-alpha.0.0 testrpc@1.0.1-alpha.0.0 sol proxima-centauri lerna-is-broken alpha-centauri-a
Nothing to show
Clone or download
gjgd Merge pull request #220 from transmute-industries/fix/truffle-contrac…
…t-async-bug

Fix truffle-contract async bug
Latest commit 89ca2ae Nov 8, 2018

README.md

Transmute · GitHub license codecov Build Status

Transmute is an enterprise-grade framework for building secure and scalable decentralized applications.

Main Features:

  • Public or private decentralized services hosted in Kubernetes and secured behind Kong
  • Seamless persistence of redux state to secured and private resources and an event-sourced smart contract system.
  • Easy environment management and configuration for public and private networks.

Transmute currently integrates with EVM blockchains (Ethereum), Decentralized Storage (IPFS), Centralized Storage (Postgres), Identity Providers (Okta), API Gateway (Kong), and existing cloud hosting (Google Kubernetes Engine, Azure Kubernetes Service and Minikube).

Setup

First step is to install the development dependencies. Review this bootstrap script before running it:

curl -Ls https://git.io/transmute_bootstrap > transmute_bootstrap
chmod +x transmute_bootstrap
./transmute_bootstrap
# cleanup 
rm -rf ./transmute_bootstrap

Or if you like to live dangerously...

source <(curl -Ls https://git.io/transmute_bootstrap)

Once the bootstrap has succeeded, you should have the transmute cli installed globally.

transmute version

You can use the transmute cli to provision and initialize a development cluster. The cli will setup minikube, install ipfs, an ethereum testnet and kong, and configure them. It will also modify your hosts files, so you can easily access these services:

transmute k8s provision-minikube my-cluster
transmute k8s init my-cluster
transmute k8s microservice install kong
transmute k8s microservice install ganache
transmute k8s microservice install ipfs

Once this process has completed, you should be able to talk to ganache and ipfs through kong via curl (note the kong port will need to be updated, kubectl get svc):

Get ganache web3 client version:

curl -s -k -X POST \
  --url "https://ganache.transmute.minikube:$KONG_PROXY_PORT/ganache" \
  --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":68}' \
  | jq -r '.'

Get ipfs node id:

curl -s -k -X GET \
  --url 'https://ipfs.transmute.minikube:'$KONG_PROXY_PORT'/api/v0/id' \
  | jq '.'

Gotchas

Manual Installation

See the longer form docs, and tutorials section.

Using Lerna and the mono repo

These instructions are only necessary if you are contributing to the dashboard or framework and testing their integration. If you are just using the cli to spin up and manage the cluster, you can skip these steps.

In order to connect to services running in your cluster, you will need to update your transmute-config. The mono repo contains a web dashboard which can be used to test your services. Make sure to update transmute-config/env.json before attempting to use lerna to build the project.

Final steps - linking everything and migrating your smart contracts

  1. Navigate to the root directory
  2. Run npm i && lerna bootstrap
  3. Run lerna run --scope transmute-framework truffle:test
  4. Run lerna run --scope transmute-framework truffle:migrate
  5. Run lerna run --scope transmute-framework test
  6. Navigate to the /packages/transmute-dashboard/ directory
  7. Run npm run truffle:migrate
  8. Run npm run start

That's it! Login to the app and click on the dashboard button in the side menu to begin recording events!