🌌 Decentralized Application Integration Platform
Clone or download
prestonparris Connect checkpointing actor (#164)
* pass through tcp messages to checkpointing actor

* more cleanup, extract all random transaction code

* separate out io and actor thread pools

* add db actor thread pool
Latest commit d99ed7b Sep 13, 2018



Decentralized Application Integration Platform.

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

└── 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

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

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


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.