Git Product home page Git Product logo

roller's Introduction

Roller CLI

Roller CLI Logo

Introduction

Roller CLI is a command-line interface tool designed to facilitate the creation and operation of RollApps on the Dymension Hub. It allows developers to effortlessly spin up and run RollApps, simplifying the development process and making the Dymension Hub more accessible.

Local Development

To build and test the latest version from the main branch:

First, install all the necessary dependencies using the following command:

curl -L https://dymensionxyz.github.io/roller/install.sh | bash

Next, clone this repository. Once cloned, navigate to the root directory and execute:

make build

This command builds the latest version of Roller and places the executable in the ./build directory.

To run Roller, use:

./build/roller

Testing

To run all the tests, run from the root directory:

go test ./...

Installing a Pre Release

To install a specific pre-release version, use:

export ROLLER_RELEASE_TAG="<RELEASE_TAG>"
curl -L https://dymensionxyz.github.io/roller/install.sh | bash

For more information about Roller and its usage, please refer to the documentation.

Contribution

pre-commit will help you with the hooks that will make sure you follow the style guidelines, once installed run:

pre-commit install -c .pre-commit-config.yaml -t commit-msg
pre-commit install -c .pre-commit-config.yaml

roller's People

Contributors

artemijspavlovs avatar davd-ops avatar deepakgudla avatar itaylevyofficial avatar mtsitrin avatar omritoptix avatar shuoer86 avatar uncertainbadg3r avatar vamsi4845 avatar victortrustydev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

roller's Issues

Facilitate Genesis Files Generation Automation with Roller Config Init

At present, genesis files in Roller are generated through manual execution of scripts and loading environmental variables, which can lead to errors. A proposed enhancement for roller config init is to automate this genesis files creation process, resulting in a more efficient and reliable setup.

Change domain of roller install to a branded one

Currently the cmd to install roller is:
curl -L https://github.com/dymensionxyz/roller/releases/download/v0.0.0/install.sh | bash

I believe this install cmd will be marketed in various places, hence a branded domain is necessary:

I propose the following domain:
roller.dymension.xyz/install

which will be marketed:

curl -L https://roller.dymension.xyz/install | bash

Configurable root directory for Roller

Currently, Roller stores config files in ~/.roller by default. This task involves introducing a --home flag to allow users to specify a custom directory for Roller configuration files. This will enhance user flexibility and support various use cases.

Implement Roller Config Init to Auto-Generate Relayer Configuration Files

As it stands, relayer configuration in Roller is performed manually via scripts and loading environmental variables. This process can be cumbersome and lead to errors. We propose enhancing roller config init to automatically generate these configuration files, making the setup process more efficient and reliable.

Implement Integration Tests for 'Roller Config Init'

To ensure the reliability and correct functioning of the 'roller config init' command, it's crucial to implement comprehensive integration tests. These tests will validate the command's performance in different scenarios and with various inputs, thus ensuring its robustness and reliability in a variety of use cases.

Cant start sequencer

New terminal, rollapp is registered on the hub and previously configured.

cmd: roller sequencer start:

Screen Shot 2023-06-20 at 12 14 35

Implement Idempotency for roller register to Ensure Smooth Rerun Handling

The roller register command should be robust in handling reruns. This includes checking if the current Dym address was used for rollapp registration in case of a rerun with an already registered rollapp id. If the rollapp is already registered, the user should be notified and the sequencer should be registered if it hasn't been done already. If the rollapp id is in use by another rollapp, the command should alert the user and prompt for a new rollapp id. This issue will focus on implementing idempotency to ensure consistent outcomes upon re-execution of the roller register command.

Exit status 1

On roller relayer start and a 5 minute wait after funding the addresses I received the following exit status 1 response:

ts=2023-06-19T17:12:52.977081Z lvl=error msg="Error sending messages" src_chain_id=internal-devnet dst_chain_id=shaolin_9000_1 src_client_id=01-dymint-23 dst_client_id=07-tendermint-0 error="error sending messages: rpc error: code = Unknown desc = rpc error: code = Unknown desc = failed to execute message; message index: 0: connection handshake open ack failed: connection state is not INIT (got STATE_OPEN): invalid connection state [cosmos/ibc-go/[email protected]/modules/core/03-connection/keeper/handshake.go:183] With gas wanted: '18446744073709551615' and gas used: '123345' : unknown request"
ts=2023-06-19T17:12:54.628088Z lvl=info msg="Successful transaction" provider_type=cosmos chain_id=internal-devnet gas_used=157452 fees= fee_payer=dym12cm8f6gg7wy6ydg8s9hnkzq29nwjcja76ztktv height=1050904 msg_types=/ibc.core.client.v1.MsgUpdateClient,/ibc.core.connection.v1.MsgConnectionOpenConfirm tx_hash=CE3CFD7BF6B08B8570D9CD16F54A36AB5D46B6C93CD7D3FAB2100843245EE85C
ts=2023-06-19T17:12:55.140341Z lvl=info msg="Connection handshake termination candidate" chain_id=internal-devnet client_id=01-dymint-23 termination_client_id=01-dymint-23 observed_client_id=01-dymint-23 termination_counterparty_client_id=07-tendermint-0 observed_counterparty_client_id=07-tendermint-0
ts=2023-06-19T17:12:55.140406Z lvl=info msg="Found termination condition for connection handshake" chain_id=internal-devnet client_id=01-dymint-23
๐Ÿ’ˆ exit status 1

The following attempt at this worked successfully.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.