Skip to content
http to Rholang Proxy for Rchain Contracts
Branch: master
Clone or download
Latest commit f480ea5 Mar 2, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs fix - impl UI related changes to the manifest file Feb 11, 2019
k8-spec fix deployment bugs with k8 Feb 5, 2019
project fix upgrade to node 0.84 Mar 3, 2019
scripts fix upgrade to node 0.84 Mar 3, 2019
.gitignore fix deployment bugs with k8 Feb 5, 2019
LICENSE.TXT fix add licenses Oct 1, 2018

GitHub Logo

RSong Proxy

A client facing REST layer to proxy RSong requests to RSongs Rholang contracts.

RSong is implemented as a combination of multiple microservices and their interactions. These microservices are:

  • rsong-acquisition
  • rsong-proxy
  • rosng-microbatch

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system



clone and build the project

git clone
cd rsong-proxy
sbt compile

Running the project locally

To run the project locally:

  • set the environment variables
  • run the docker

Alternatively you may build and run the project from source code.

Environment variables

To run the project locally, configure your environment variables:

export LOCAL_GRPC='localhost'
export GCP_GRPC='dd.dd.dd.dd'
export AWS_GRPC='dd.dd.dd.dd'
export DOCKER_GRPC=''
export HTTP_PORT=9000
export PRD_K8=''
export DEV_K8=''
export LOCAL_K8='http://localhost'

You may consider using direnv to manage projects environment variables

Run the docker image

Circle CI build process publishes the rsong-proxy docker image to docker hub. To run the image:


Running the Source code

sbt clean compile run
## to create a local dokcer image
sbt clean compile docker:stage docker:publishLocal
docker images | grep 'rsong-proxy'

Running tests:

tests are:

  • unit tests
  • integration tests

Unit tests

sbt clean test

Integration tests

  • configure .envrc for both rsong-proxy and rsong-acquisition are configured for the same node instance
  • execute rsong-acquisition to migrate the song data to node
  • build rsong-proxy and run integration tests
Execute rsong-acquisition
cd ../rsong-acquisition
## make sure rsong-acquisition & rsong-proxy are using the same node
sbt clean compile universal:packageBin
cd target/universal && unzip ./rsong-acquisition-1.2-SNAPSHOT && cd rsong-acquisition-1.2-SNAPSHOT
Execute rsong-proxy integration tests

Integration tests are run by the python script
The scripts assumes requests is installed.

sbt clean compile run
## from a different terminal:
./scripts/ localhost:9000

url Inventory


## create a new user 
curl -X POST $host/v1/user/<user_id>

## retrieve  user  object
curl  $host/v1/user/<user_id>

## retrive a user's song
curl -v  GET $host/v1/song/song1?userId=123 | jq

##  retrive user's songs
curl -v  GET $host/v1/song\?userId=user123\&perPage=10\&page=1 | jq

for asset urls, see output from:

curl GET $host/v1/song/song1?userId=123 | jq

Built With


Runtime env

  • rnode
  • rsong-proxy


rnode is build from the latest rchain dev branch deployed to GCP. This is a single instance at this time.


rsong-proxy runs on kubernetes-cluster on GCP See deployment-prd-spec for more detail


You can’t perform that action at this time.