The open-sourced version of sōshen boosts developer efficiency and productivity by furnishing them with an extensible foundation for managing and monitoring their applications' blockchain interactions (for now, only Cardano is supported - using sōshen with IOHK's Project Icarus would be the fastest way to get up and running).
sōshen consists of the following three components:
- Dashboard. A mobile-friendly web application that provides an intuitive user interface for creating and managing projects and tracking their blockchain requests
- Dashboard API. A server application that handles inbound HTTP requests from the dashboard application and reads and writes data to the databases accordingly
- Node API. A server application that checks inbound HTTP requests for valid project credentials and updates the stats database, before forwarding them to a Cardano full node API (currently, sōshen is set up for use with Project Icarus)
- Install Docker and Docker Compose
Docker
We've containerized sōshen's components using Docker so that you won't have to install the project's dependencies one-by-one (Node.js, PostgreSQL, etc.). Follow the instructions at the official Docker website to install Docker: https://docs.docker.com/install/.
Docker Compose
By using Docker Compose, we'll be able to orchestrate the build and run steps for each of our application's containers with a single command. Follow the instructions on the official Docker website to install Docker Compose https://docs.docker.com/compose/install/.
- Clone the GitHub code repository to your machine
If you don't already have git, you can follow https://www.atlassian.com/git/tutorials/install-git well-written instructions from Atlassian (make sure to scroll to the section for your OS).
After installing git, run the following command to clone the repo and enter the repo directory:
git clone [repo] && cd [repo]
- Run sōshen
docker-compose up
It may take a few minutes, but that's it! After all the containers are running, you can visit the dashboard at http://localhost:8100.
Currently, the "master" branch does not have any sort of WebSocket functionality and would not be able to support the demo applications that we've open-sourced here:
- sōshen Crypto Whales: Real-time tweets for "whale-sized" cryptocurrency transactions using the sōshen and Twitter APIs.
- ADA Transaction Flight: Real-time network transactions visualized with airplanes
To provide developers with the capability to run the above projects, we've created an "extended" branch which contains two things:
- A sōshen-fork of Project Icarus's backend service component (added as a submodule). Original and sōshen-fork
- A modified sōshen's node API application which contains logic for subscribing to the backend service (above) and handling client WebSocket requests (view the diff between branches here).