:
Seriously fast decentralized applications for the Dash network
Dash Platform is a technology stack for building decentralized applications on the Dash network. The two main architectural components, Drive and DAPI, turn the Dash P2P network into a cloud that developers can integrate with their applications.
If you are looking for how to contribute to the project or need any help with building an app on the Dash Platform - message us on the Devs Discord!
This is a multi-package repository - sometimes also known as monorepository - that contains all packages that comprise the Dash platform - for example, Drive, which is the storage component of Dash Platform, the JavaScript SDK, wallet-lib, DAPI, and others. Every individual package contains its own readme. Packages are located in the packages directory.
Dash Platform is currently undergoing testing and final development necessary to support its release on the Dash production network (mainnet). The packages in this repository may be used on the following networks:
- Clone the repo
- Install prerequisites:
- node.js v20
- docker v20.10+
- rust v1.73+, with wasm32 target (
rustup target add wasm32-unknown-unknown
) - wasm-bingen toolchain:
- IMPORTANT (OSX only): built-in
llvm
on OSX does not work, needs to be installed from brew:brew install llvm
- LLVM installed from brew is keg only, and path to it must be provided in the profile file,
in terminal run
echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc
orecho 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.bash_profile
depending on your default shell. You can find your default shell withecho $SHELL
- Reload your shell with
source ~/.zshrc
orsource ~/.bash_profile
- install
protoc
- protobuf compiler:- on debian/ubuntu:
apt install -y protobuf-compiler
- on Mac:
brew install protobuf
- on other systems, install most recent version from Protocol Buffers releases page (tested with protobuf 22.4)
- if needed, set PROTOC environment variable to location of
protoc
binary
- on debian/ubuntu:
cargo install wasm-bindgen-cli@0.2.85
- double-check that wasm-bindgen-cli version above matches wasm-bindgen version in Cargo.lock file
- Depending on system, additional packages may need to be installed as a prerequisite for wasm-bindgen-cli. If anything is missing, installation will error and prompt what packages are missing (i.e. clang, llvm, libssl-dev)
- IMPORTANT (OSX only): built-in
- essential build tools - example for Debian/Ubuntu:
apt install -y build-essential libssl-dev pkg-config clang
- Run
corepack enable
to enable corepack and install yarn - Run
yarn setup
to install dependencies and configure and build all packages - Run
yarn start
to start the local dev environment built from the sources - Run
yarn test
to run the whole test suite (note that running tests requires a running node, so be sure to callyarn start
first). Alternatively, you can run tests for a specific package by runningyarn workspace <package_name> test
, for example runningyarn workspace @dashevo/dapi-client test
will run tests for the JS DAPI client. To see all available packages, please see the packages readme yarn stop
will stop the local dev environment. Running a dev environment requires a non-trivial amount of system resources, so it is best to stop the local node when not in use- Run
yarn build
to rebuild the project after changes. If you have a local node running, you may need to restart it by runningyarn restart
- To completely reset all local data and builds, run
yarn reset
For questions and support, please join our Devs Discord
Our docs are hosted on readme.io. You can create issues and feature requests in the issues for this repository.
Please read through our CONTRIBUTING.md and fill out the issue template at platform/issues!
Check out:
- Our Developers Discord
- Our CONTRIBUTING.md to get started with setting up the repo.
- Our news and blog which contains release posts and explanations.