Skip to content

dashpay/platform

Repository files navigation

:

babel

Seriously fast decentralized applications for the Dash network

GitHub CI Status Devs Chat General Chat Follow on Twitter

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!

Intro

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.

Supported networks

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:

FAQ

How to build and set up a node from the code in this repo?

  • Clone the repo
  • Install prerequisites:
    • node.js v20
    • docker v20.10+
    • rust v1.80+, with wasm32 target (rustup target add wasm32-unknown-unknown)
    • protoc - protobuf compiler v27.3+
      • if needed, set PROTOC environment variable to location of protoc binary
    • 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 or echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.bash_profile depending on your default shell. You can find your default shell with echo $SHELL
        • Reload your shell with source ~/.zshrc or source ~/.bash_profile
      • 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)
    • essential build tools - example for Debian/Ubuntu: apt install -y build-essential libssl-dev pkg-config clang cmake llvm
  • 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 call yarn start first). Alternatively, you can run tests for a specific package by running yarn workspace <package_name> test, for example running yarn 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 running yarn restart
  • To completely reset all local data and builds, run yarn reset

Looking for support?

For questions and support, please join our Devs Discord

Where are the docs?

Our docs are hosted on docs.dash.org. You can create issues and feature requests in the issues for this repository.

Want to report a bug or request a feature?

Please read through our CONTRIBUTING.md and fill out the issue template at platform/issues!

Want to contribute to Dash Platform?

Check out:

License

MIT