movementlabsxyz / movement

The Movement Network is a Move-based L2 on Ethereum.
Apache License 2.0
82 stars 66 forks source link

Movement

Discord badge Twitter handle

The Movement SDK is a collection of tools and libraries for building, deploying, and working with Movement Labs infrastructure. The SDK is designed to be modular and extensible, allowing developers to build custom tools and libraries on top of the core components as well as to interact with Movement Labs' own networks.

Important

Unless otherwise specified assume all commands below are run after entering a nix shell with nix develop. Development is made possible Within the Nix environment with all needed tooling being available. If you are wishing to run the network then this can also be achieved without the need to install nix with having docker and just installed only.

Organization

Prerequisites (Development)

Prerequisites (Running Node)

Running Natively (Nix required)

movement-celestia-da-light-node

# example test with local  Celestia Data Availability service
just movement-celestia-da-light-node native build.setup.test.local

movement-full-node

# example test with local celestia and local ethereum
just movement-full-node native build.setup.celestia-local.eth-local

Run a Movement Node with Docker Compose

  1. Make sure you have installed the just command on your system. If not check the "Prerequisites" section of this repo.

  2. When running with docker compose specify your revision in a file .env at the root of the project. The file should look like this:

    # /path/to/movement/.env
    CONTAINER_REV=0fe2a4f28820c04ca0db07cdd44cafc98b792f3f

We recommend to use the latest commit of the "main" branch:

GIT_ROOT=$(git rev-parse --show-toplevel)
MOVEMENT_ENV_FILE="${GIT_ROOT}/.env"
[[ -n "${GIT_ROOT}" ]] \
  && echo  "CONTAINER_REV=$(git rev-parse HEAD)" > "${MOVEMENT_ENV_FILE}"
echo "INFO: movement version is $(cat ${MOVEMENT_ENV_FILE})"

movement-full-node

We only support running the movement-full-node with a local Celestia Data Availability service via Docker Compose.

# A local Movement network
just movement-full-node docker-compose local

Under the hood, just runs

# working directory = GIT_ROOT
GIT_ROOT=$(git rev-parse --show-toplevel)
docker compose --env-file .env \
               --file docker/compose/movement-full-node/docker-compose.yml \
               --file docker/compose/movement-full-node/docker-compose.local.yml \
               up

Note: if you want to recreate the network, but not rely on the just target above, please read through the scripts to identify the correct docker-compose files to run.

Note: If you are experiencing any issues starting the local network please remove the local ./.movement folder

Note For attesters in order to receive rewards you need to launch the node in Attester mode. To do this you will need to provide a private key at runtime. This feature is not implemented yet, at this moment.

Services

movement-full-node

Both native and docker-compose runners will serve the following services listening on the specified default addresses:

Note: Only APIs intended for the end-user are listed here. For a full list of services, please refer to respective docker-compose files.

Node Operation

For node operation guides, please begin with the manual node operation docs.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.