/constellation

:milky_way: Decentralized Application Integration Platform

Primary LanguageScalaApache License 2.0Apache-2.0

Constellation

Decentralized Application Integration Platform.

This repository is the reference implementation of our DAG protocol using the Scala programming language.

constellation
└── src
    ├── it                                   <─── continuous integration
        ├── ClusterDebug.scala
        ├── ...
        └── UploadChain.scala
    ├── main/scala/org/constellation         <─── protocol implementation
        ├── consensus
            ├── Consensus.scala
            ├── EdgeProcessor.scala
            └── ...
        ├── crypto
            ├── Base58.scala
            ├── KeyUtils.scala
            └── Wallet.scala
        ├── p2p
            └── ...
        ├── primitives
            ├── ...
            └── TransactionValidation.scala
        ├── serializer
        ├── util
            ├── API.scala
            ├── ConstellationNode.scala
            ├── Data.scala
            └── LevelDB.scala
    └── test/scala/org/constellation          <─── unit tests
        ├── app
        ├── cluster
        ├── consensus
        ├── p2p
        ├── rpc
        ├── ...
        └── UtilityTest.scala
└── ui

(Not shown in the above table are things like fixtures, shell- and sbt-scripts or markup-, package-, scala-project and config-files that are used for project building, deploying, docker, kubernetes, network setup, unit tests, continuous integration, and so on.)

💻 Building for development

On Linux and Mac

  1. Check out the repository
git clone git@github.com:Constellation-Labs/constellation.git
  1. From root directory constellation, run
./build.sh

or optionally (to connect to other host)

./build.sh seedhost:port
  1. Interact with app via the API By default this is http://localhost:9000. Look at the file API.scala for endpoints.

Docker execution

Note: For now this installation is not covered here in detail.

Install docker locally

  1. Set up docker.
  2. Follow directions for building for development.
  3. Run
sbt docker:publishLocal
  1. Run
./run-local-docker.sh

We will publish the corresponding images to dockerhub soon.

For Windows, just grab the docker cmd from the file and run directly.

Vagrant execution

This is deprecated but may be useful for people running Windows, etc.:

  1. Download vagrant.
  2. Run
vagrant up

from project directory. See also

📗 API Docs

WIP

We intend to use Swagger or similar to publish comprehensive API docs.

🚨 Troubleshooting

Should you discover a bug, please open a ticket using the github issue function. If you don't know the resolution, follow standar github reporting guidelines, stating your system, what you did and tried.

If you run into issues during the installation and for general software support, best make a thread on the community portal Orion or ask a quick question on the Constellation discord server.


For more documentation and developer tools, as well a community constributions 💕, contribution guidelines and so on, you can find links to the community outlets in the resource list.