{"repo":"datopia/abci-host","free":true,"listed":false,"github":"https://github.com/datopia/abci-host","clone":"git clone https://github.com/datopia/abci-host.git","description":"Clojure host/server for Tendermint's ABCI protocol.","language":"Clojure","stars":25,"topics":["clojure","blockchain","tendermint","abci","consensus","distributed-systems"],"license":"MIT","category":"blockchain-web3","readme_excerpt":"org.datopia/abci A Clojure library which acts as an application host for Tendermint's ABCI --- allowing the exposure of plain functions as replicable state machines. org.datopia/abci uses org.datopia/stickler to provide pure-data representations of the protobuf-encoded messages received from the Tendermint node process --- maps in, maps out. Documentation - API docs. - K/V store example project. Change Log. Project - Tendermint Version Mapping org.datopia/abci Tendermint ----------------- ----------------- 0.2.0 0.38.5 (CometBFT) 0.1.0 0.34.12 There's a previous, deprecated artifact: io.datopia/abci ----------------- ------------- 0.1. 0.26.0 Toy Example / Walkthrough The simplest possible service looks something like: While this isn't a particularly dynamic application, we can successfully point a Tendermint node process at it and indefinitely operate a no-op blockchain. Requests & Responses Let's transform our handler from (constantly ::mw/default) to something slightly different: Once the Tendermint node connects, our first message: The minimal success response to the above: Let's update our service to construct this response explictly, while using middleware to strip incoming :abci/Request envelopes - and wrap responses in :abci/Response envelopes. While this won't alter how our service functions, it may make it a little clearer. Without the envelopes, our incoming request sequence: The project's abci.edn resource describes the full complement of messages. As Tendermint u","default_branch":null,"files":null,"tree":[],"storefront":"/r/datopia","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/datopia/abci-host/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}