Transmute is an enterprise-grade framework for building secure and scalable decentralized applications.
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).
This guide will walk you through getting setup with Transmute.
Here is a video to help guide you along.
curl -Ls https://git.io/transmute_bootstrap | bash
Notice that will install kubectl, minikube, helm, ansible, and ngrok for you, if any of these things are already present on your path then they will be skipped. If you find one of these components are out of date, delete it from your path and rerun the oneliner. Check Oneliner internals for details and setup troubleshooting.
Now you can proceed to the Environment scripts and updating section and continue.
Or alternately you can install manually…
$ minikube versionto ensure minikube has been installed properly
$ minikube startto start your local kubernetes cluster
$ helm versionto ensure helm has been installed properly
In order to secure resources with SSL, you will need a custom domain. You can reserve one with Google Domains or similar domain registration services.
We use ngrok to provide a secure url for localhost development for connecting to secured resources (IPFS, Ethereum).
.bash_profileso that you can run the
ngrokcommand from any directory
~/.ngrok2/ngrok.yml(Default Ngrok Configuration)
authtoken: $YOUR_AUTH_TOKEN tunnels: certbot: addr: 80 proto: http hostname: $YOUR_CUSTOM_SUBDOMAIN # kong: # addr: $KONG_URL_AND_PORT # proto: tls # bind_tls: true # hostname: $YOUR_CUSTOM_SUBDOMAIN
KONG_NGROK_HOSTwill map to $YOUR_CUSTOM_SUBDOMAIN (Ex: dev.example.com)
echo "$(minikube ip) $YOUR_CUSTOM_SUBDOMAIN" | sudo tee -a /etc/hosts
Cerbot allows us to create SSl certificates with letsencrypt for our subdomain.
ngrok start --all
sudo certbot certonly- you will want to:
OKTA_HOSTNAMEthat was given to you on signup Do not include https (Ex: dev-280930.oktapreview.com)
OKTA_CLIENT_SECRETgiven to you in step 4
OKTA_PASSWORDthat you assigned to your user in step 5
KONG_CONSUMER_USERNAMEwith the username that you assigned in step 5
npm run setup
At the end of this process, you should see the following variables listed in the terminal:
With these we will be updating a few files.
/packages/transmute-dashboard/src/transmute-config/env.jsonwith these values. (
KONG_PROXY_PORTshould not be in quotes, it is a number)
Final steps - linking everything and migrating your smart contracts
lerna run --scope transmute-framework truffle:test
lerna run --scope transmute-framework truffle:migrate
lerna run --scope ipfs-api build
npm run truffle:migrate
npm run start
That’s it! Login to the app and click on the dashbaord button in the side menu to begin recording events!
Transmute includes a command line interfce (CLI) tool. This will assist in the provisioning and initialization of the cluster, and other maintenance tasks.
transmute k8s provision-minikube mytransmutek8s <– will create a
k8s cluster using minikube by default it will use –vmdriver=none(requires root), but you can
choose the driver by passing a
--vmdriver= option on the command line
transmute k8s provision-minikube mytransmutek8s --vmdriver=virtualbox
transmute k8s provision-azure mytransmutek8s myGroup <– will create a
k8s cluster using azure by default.
transmute k8s init mytransmutek8s
This will prepare your cluster with the base transmute k8s deployment.