This helm chart will install an full mainnet DSP cluster (Syncd Mainnet API Node, DAPP DSP Services, IPFS Cluster)
This chart is using:
- https://github.com/helm/charts/tree/master/stable/ipfs
- https://github.com/liquidapps-io/eosio-node-k8s-helm
- CPU: 4x2.2GHz Cores
- Memory: 64GB memory
- Network: 1 GigE
- Disk: 1TB
https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html
https://cloud.google.com/kubernetes-engine/docs/quickstart
kubectl get nodes
For GCP:
docker run -v /google/google-cloud-sdk:/google/google-cloud-sdk \
--entrypoint /bin/bash --rm -it -v $HOME/.kube/config:/root/.kube/config \
liquidapps/zeus-dsp-bootstrap
Others:
docker run --entrypoint /bin/bash --rm -it -v $HOME/.kube/config:/root/.kube/config \
liquidapps/zeus-dsp-bootstrap
Inside the container shell:
# create tiller service account
kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
# install helm on cluster
helm init --service-account tiller
helm repo update
Restore from snapshot:
zeus deploy dapp-cluster dspaccount --key yourdspprivatekey
Or restore from full backup and replay:
zeus deploy dapp-cluster dspaccount --key yourdspprivatekey --full-replay=true
Or resume after first restore:
zeus deploy dapp-cluster dspaccount --key yourdspprivatekey --snapshot=false
kubectl logs -f dsp-nodeos-0 --all-containers
It takes a couple of hours to restore from the blockchain backups depending on internet connection and hardware performance
AWS:
MYAPI=$(kubectl get service dsp-dspnode -o jsonpath="{.status.loadBalancer.ingress[?(@.hostname)].hostname}"):3115
echo $MYAPI
GCP:
MYAPI=$(kubectl get service dsp-dspnode -o jsonpath="{.status.loadBalancer.ingress[0].ip}"):3115
echo $MYAPI
{
"name": "acme DSP",
"website": "https://acme-dsp.com",
"code_of_conduct":"https://...",
"ownership_disclosure" : "https://...",
"email":"dsp@acme-dsp.com",
"branding":{
"logo_256":"https://....",
"logo_1024":"https://....",
"logo_svg":"https://...."
},
"location": {
"name": "Atlantis",
"country": "ATL",
"latitude": 2.082652,
"longitude": 1.781132
},
"social":{
"steemit": "",
"twitter": "",
"youtube": "",
"facebook": "",
"github":"",
"reddit": "",
"keybase": "",
"telegram": "",
"wechat":""
}
}
{
"name": "Package 1",
"description": "Best for low vgrabs",
"dsp_json_uri": "https://acme-dsp.com/dsp.json",
"logo":{
"logo_256":"https://....",
"logo_1024":"https://....",
"logo_svg":"https://...."
},
"service_level_agreement": {
"availability":{
"uptime_9s": 5
},
"performance":{
"95": 500
}
},
"pinning":{
"ttl": 2400,
"public": false
},
"locations":[
{
"name": "Atlantis",
"country": "ATL",
"latitude": 2.082652,
"longitude": 1.781132
}
]
}
Warning: packages are read only and can't be removed yet.
zeus register dapp-service-provider-package \
ipfs dspaccount package1 \
--key yourdspprivatekey \
--min-stake-quantity "10.0000" \
--package-period 86400 \
--quota "1.0000" \
--network mainnet \
--api-endpoint $MYAPI \
--package-json-uri https://acme-dsp.com/package1.dsp-package.json
replace https://api.acme-dsp.com with the service endpoint from
For more options:
zeus register dapp-service-provider-package --help
Currently only package_json_uri & api_endpoint are modifiable. To modify package metadata: use the "modifypkg" action of the dappservices contract. (https://bloks.io/account/dappservices)
(https://github.com/liquidapps-io/vgrab)
cleos set abi mycoldtoken1 vgrab.abi
cleos set code mycoldtoken1 vgrab.wasm
PKEY=mycoltoken1_active_public_key
PERMISSIONS=`echo "{\"threshold\":1,\"keys\":[{\"key\":\"$PKEY\",\"weight\":1}],\"accounts\":[{\"permission\":{\"actor\":\"mycoltoken1\",\"permission\":\"eosio.code\"},\"weight\":1}]}"`
cleos set account permission mycoldtoken1 active $PERMISSIONS owner -p mycoltoken1
cleos push action mycoldtoken1 create '["mycoltoken1","100000000.0000 VTST"]}' -p mycoltoken1
cleos push action dappservices selectpkg '["mycoltoken1","dspaccount","ipfsservice1","package1"]}' -p mycoltoken1
cleos push action dappservices stake '["mycoltoken1","dspaccount","ipfsservice1","1.0000 DAPP"]}' -p mycoltoken1
cleos set account permission mycoldtoken1 dsp '{"threshold":1,"keys":[],"accounts":[{"permission":{"actor":"dspaccount","permission":"active"},"weight":1}]}' owner -p mycoltoken1
cleos -u $MYAPI push action mycoldtoken1 coldissue '["talmuskaleos","1.0000 VTST","hello world"]' -p mycoltoken1
kubectl logs dsp-dspnode-0 -c dspnode-ipfs-svc
https://bloks.io/account/mycoltoken1
cleos push action dappservices claimrewards '["dspaccount"]' -p dspaccount
Download client from: https://docs.helm.sh/using_helm/#installing-helm
sudo snap install helm --classic
Run:
helm init --service-account tiller
helm update repo
https://github.com/liquidapps-io/zeus-cmd
zeus unbox dapp-cluster-k8s
cd dapp-cluster-k8s