nitro-stack/stack-orchestrator/stack/go-nitro
Nabarun Gogoi c0fe155708
Add stack for running individual nitro node (#2)
* Build go-nitro container image

* Run nitro node using stack

* Add config setup in readme for running nitro node

* Add script for deploying contracts

---------

Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
Co-authored-by: Neeraj <neeraj.rtly@gmail.com>
2024-07-18 10:22:37 +05:30
..
README.md Add stack for running individual nitro node (#2) 2024-07-18 10:22:37 +05:30
stack.yml Add stack for running individual nitro node (#2) 2024-07-18 10:22:37 +05:30

Go-nitro

Setup

  • Clone the stack repo

    laconic-so fetch-stack git.vdb.to/cerc-io/nitro-stack
    
  • Clone required repositories

    laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stack/go-nitro setup-repositories
    

    Note: Replace path to nitro stack with actual path

  • Build the container image

    laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stack/go-nitro build-containers
    

Create a deployment

  • Create a spec file

    laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stack/go-nitro deploy init --output go-nitro-spec.yml
    
  • TODO: Edit network in the spec file to map container ports to host ports as required:

    network:
    ports:
      go-nitro:
       - 3006:3006
       - 4006:4006
       - 5006:5006
    
  • Create deployment

    laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stack/go-nitro deploy create --spec-file go-nitro-spec.yml --deployment-dir go-nitro-deployment
    

Configuration

  • Inside the go-nitro-deployment deployment directory, open config.env file and set following env variables:

    # URL endpoint of the chain (Example: ws://host.docker.internal:8545)
    CERC_NITRO_CHAIN_URL=
    
    # Private key of account to be used by Nitro node (derived address is used as Nitro address)
    CERC_NITRO_PK=
    
    # Private key of the account on chain that is used for funding channels in Nitro node
    CERC_NITRO_CHAIN_PK=
    
    # Port to be used by P2P message service (Example: 3009)
    CERC_NITRO_MSG_PORT=
    
    # Port to be used by RPC server (Example: 4009)
    CERC_NITRO_RPC_PORT=4009
    
    # Optional
    # Contract addresses of NitroAdjudicator, VirtualPaymentApp and ConsensusApp
    # TODO: Contracts are deployed if addresses are not set
    CERC_NA_ADDRESS=
    CERC_VPA_ADDRESS=
    CERC_CA_ADDRESS=
    

Start the deployment

laconic-so deployment --dir go-nitro-deployment start