LogoLogo
Deploy NowCommunity Careers
  • Introduction to StackAI
  • Litepaper
  • FAQs
    • Introductory FAQs
    • Technical FAQs
    • Project/App FAQ
    • Financial FAQs
  • Tokens
    • Add $STACK to MetaMask
    • Buy $STACK Tokens
  • App Deployment on StackOS
    • Custom App Deployment
    • AppStore App Deployment
    • Deploy a Containerized Application on StackOS
  • Basic Operations
    • Create WebTTY
    • WebTTY, Logs, Shell Access
    • Practice - Persistent Data, Alternate User
    • Reset StackOS Account
    • Map a container port
    • Custom DNS
    • Custom SSL
    • Account Funding - General
    • Pod Launch - General
  • Preparing Custom Images
    • Docker Hub Intro
    • GitHub, DockerHub and StackOS Integration
  • App Store Notes
    • Redis on StackOS
    • Memcached on StackOS
    • Presearch on StackOS
    • Wordpress on StackOS
    • Jenkins on StackOS
    • WebDAV on StackOS
  • Useful Apps
    • phpMyAdmin (Mysql Web Admin)
  • Wordpress Operations
    • Launching a Wordpress app on StackOS
    • WordPress Migration
    • Account Funding - Wordpress
    • Upload limit increase
    • SSL Mixed Content Resolution
    • Wordpress Domain Change
  • Other Applications
    • Python Applications
    • RSK
  • 0xMarket
    • Viewing your NodeNFT
    • Listing your NodeNFT
    • Buying a NodeNFT
Powered by GitBook
On this page
  • Solution
  • Prepare node.conf
  • Make a Dockerfile
  • Build & push your image
  • Configure your pod
  • Test your connection
  • Debug your pod
  • Persistent Storage
  1. Other Applications

RSK

EVM sidechain for Bitcoin

PreviousPython ApplicationsNextViewing your NodeNFT

Last updated 3 years ago

RSK is configured by default to accept only localhost / 127.0.0.1 as the hostname

So when StackOS provides a custom hostname, or you configure your own DNS, RSK will refuse to serve any jsonrpc responses

Solution

  • Build the basic RSK mainnet image on your local machine

    • docker build -t mainnet -f Dockerfile.MainNet .

    • You will end up with a mainnet image

Prepare node.conf

Take the default node.conf and change the hosts the image will recognize

    web: {
        cors: "*",
        http: {
            enabled: true,
            bind_address = "0.0.0.0",
            hosts = ["tagethost.example.com"]
            port: 4444,
            }
        ws: {
            enabled: false,
            bind_address: "0.0.0.0",
            port: 4445,
            }
        }
    }

Make a Dockerfile

FROM mainnet:latest
COPY node.conf /etc/rsk/node.conf

Build & push your image

docker build -t dockerhubuser/myrsk:v123
docker push dockerhubuser/myrsk:v123

Configure your pod

Download your own image that you just uploaded

If you want to use custom DNS, set that up ahead of time

Test your connection

Run curl against your host

curl https://rsk.mydomain.com/mainnet --header 'Content-Type: application/json'  -XPOST -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Expect a response like

{"jsonrpc":"2.0","id":1,"result":"0x0"}

Debug your pod

Edit /etc/rsk/logback.xml and increase verbosity for jsonrpc

Wait 1 hour for rsk to read your new log config (or rebuild your docker image and force the change)

Watch for error messages

tail -f  /var/log/rsk/rsk.log | grep rpc

Persistent Storage

If you wish to use persistent storage with rsk, be aware you must update the permissions of the storage directory

Here is an example configuraton

After your pod boots, locate your pod name and shell into your pod:

Then run the following command

chown -R rsk:rsk /var/lib/rsk

Then your process will run normally.

https://developers.rsk.co/rsk/node/install/docker/
Custom DNS
WebTTY, Logs, Shell Access