Useful Links
Explore the docs »
View Mainnet Bridge
View Testnet Bridge (Connext Bacco)
Report Bug
Bug Bounty Program
Request Feature
The Connext architecture can be seen as a layered system, as follows :
Layer | Protocol/Stakeholders |
---|---|
Application Layer |
Crosschain Applications (xApps), SDK |
Liquidity Layer |
Routers, Sequencer |
Messaging - Execution Layer |
Lighthouse, Sequencer |
Messaging - Verification Layer |
Watcher |
Messaging - Transport Layer |
AMBs |
Connext is a modular stack for trust-minimized, generalized communication between blockchains. Read More
adapters - Wrappers around external modules. These adapters can be shared between different packages.
agents - Core infra Hosted services for Functionality and UX.
examples - these are not used in production, but contain ways to use the SDK that are illustrative of how to integrate Connext
integration - Utilities for integration test
utils - Collection of helper functions that are shared throughout the different packages
Use Node version 18.x
.
And Make sure you are on the latest yarn version:
yarn set version berry
To set up the containers, use Docker. If Docker is not already installed on your system, you can easily install it by clicking here.
Try running yarn
to update everything. If you have issues, try deleting node_modules
and yarn.lock
. After deleting yarn.lock
run touch yarn.lock
since it does not like if there is no lock file.
Setup Environment, by initiating the build:
yarn && yarn build:all
Here yarn
: Install deps, create symlinks, hoist packages. & yarn build:all
: Build all packages.
To run RabbitMQ with the management plugin using Docker, run the following command:
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.10-management
This command will download the latest RabbitMQ image with the management plugin and start a container with the name rabbitmq.
To run Redis, execute the following command:
docker run -it --rm --name redis -p 6379:6379 redis
This command will download the latest Redis image and start a container with the name Redis.
And now you are all ready to interact with Monorepo.
Individual commands can be run against workspaces as so (example for nxtp-utils
package):
yarn workspace @connext/nxtp-utils test
You should be able to do everything from the root and not need to go into the individual package dirs. For example, adding an npm package:
yarn workspace @connext/nxtp-txservice add ethers
Run router:
yarn workspace @connext/nxtp-router dev
- Runs router in hot-reload mode.yarn
: Install deps, create symlinks, hoist packages.yarn build:all
: Build all packages.
oryarn workspace @connext/smart-contracts build
: Build the specific package.Run test:
yarn workspace @connext/smart-contracts test
- Runs test.To add a new package that can be shared by the rest of the repo, you can use some convenience scripts that we have installed:
yarn tsp create @connext/test-lib --template node-lib
Note: The tsp
tool is not required, it just makes boilerplate generation easier. If you want, you can copy paste stuff from other packages. Documentation on the tool is here.
To add the lib to be a dependency of a consuming app (i.e. the router):
yarn tsp add @connext/test-lib --cwd packages/router
Again, this can all be done without the tool, all it does is add some files and make some config changes.
Note: We use node-lib
as the template for all the packages. There are some other included templates like browser-lib
which didn't work with our bundling. We might need to revisit things for bundling reqs.
CHANGELOG.md
.yarn version:all X.X.X
where X.X.X
is the full version string of the NPM version to deploy (i.e. 0.0.1
).
X.X.X-beta.N
for Amarok releases from the production
branch and X.X.X-alpha.N
for Amarok releases from main
branch.git commit -am "<version>" && git tag -am "<version>"
git push --follow-tags
.Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Distributed under the MIT License. See LICENSE.txt
for more information.
Project Link: https://github.com/connext/monorepo