Skip to content

InTechSA/scala-tendermint-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tendermint-server

Scala implementation of Tendermint TSP ABCI Server (see Tendermint documentation) using Akka Stream.

Build & run the example

Run the main class lu.intech.tendermint.Main which starts a TSP server:

sbt run

In parallel, run abci-cli:

abci-cli info

or tendermint:

tendermint node

This basic implementation logs messages to stdout.

Integration in your application

The purpose of this project is to integrate tendermint in your Scala application.

Add the dependency to your build.sbt:

libraryDependencies += "lu.intech" %% "tendermint-server" % "1.0.0")

And create an instance of the Server class, and set your implementations to handle TSP messages:

import lu.intech.tendermint.Server
import akka.actor.ActorSystem
import akka.stream.{ActorMaterializer, Materializer}


implicit val system: ActorSystem = ActorSystem()
implicit val materializer: Materializer = ActorMaterializer()
import scala.concurrent.ExecutionContext.Implicits.global

val server = new Server(
	consensusHandler = new lu.intech.tendermint.ConsensusHandler { /* ... */ } ,
	mempoolHandler   = new lu.intech.tendermint.MempoolHandler { /* ... */ } ,
	queryHandler     = new lu.intech.tendermint.QueryHandler { /* ... */ } ,

	/* default values      */
	/* host = "127.0.0.1" ,*/
	/* port = 46658        */
)

server.start()

Logging

tendermint-server uses slf4j as logging api and logback binding by default.
If you want to configure loggers, just provide a logback.xml file.

About

Scala implementation of Tendermint TSP ABCI Server

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published