Haskell Application BlockChain Interface (ABCI) Server Library https://github.com/cwgoes/haskell-abci#readme
|Latest on Hackage:||0.1.0.0|
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
Haskell ABCI Server Library
Haskell library for writing Application BlockChain Interface (ABCI) servers. Licensed under BSD 3-clause (see LICENSE).
Available as a library on Hackage.
If you’re using Stack, simply add haskell-abci to the build-depends in your project’s Cabal file.
If you’re using Cabal directly, cabal install haskell-abci should do the trick.
This library exposes a request-response API. Usage is simple:
- Import the library
import qualified Network.ABCI as ABCI
Define your application (for more information, see the ABCI application development documentation)
See the example counter app for a template.
app :: ABCI.Request -> IO ABCI.Response app = undefined
- Specify a host and port on which to bind the ABCI server, or use the defaults
host :: String host = ABCI.defaultHost port :: Int port = ABCI.defaultPort
- Launch the server
run :: IO () run = ABCI.serve host port app
Development / Testing
git clone https://github.com/cwgoes/haskell-abci.git cd haskell-abci stack build --install-ghc
Note that src/types.proto is used to generate a Haskell interface file whenever you run stack build.
Optionally, to also install the example counter application (haskell-abci-counter) in ~/.local/bin:
Once you’ve installed haskell-abci-counter, to run the counter example application with the standard ABCI Golang tests: (note that you’ll need ~/.local/bin on your shell path and Tendermint installed)
git clone https://github.com/tendermint/abci.git cd abci/tests/test_app ABCI_APP="haskell-abci-counter" go run ./*.go