wasmbft

module
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2024 License: Apache-2.0

README

WasmBFT

banner

Version Go version License Sourcegraph

Introduction

WasmBFT is a clone of CometBFT v0.38.2, customized to add functionalities for batching transactions into sets of 25 and displaying this information via port 26657. This enhancement aims to improve the efficiency of transaction processing and zk proof generation.

Features

  • Transaction Batching: Groups transactions into batches of 25.
  • API Endpoints: Provides endpoints to access batch details.

Using WasmBFT as a Go Module

To use WasmBFT in your Go project, you can add it to your go.mod file or replace the default CometBFT module.

Adding WasmBFT to Your Project

Add the following line to your go.mod file:

require github.com/airchains-network/wasmbft v0.0.1

Then run:

go mod tidy
Replacing the Default CometBFT Module

If your project already uses CometBFT and you want to replace it with WasmBFT, add the following replace directive to your go.mod file:

replace github.com/cometbft/cometbft => github.com/airchains-network/wasmbft v0.0.1

Then run:

go mod tidy

API Endpoints

WasmBFT provides the following API endpoints to access transaction batch details:

  • Get Pod Count:

    GET http://localhost:26657/tracks_pod_count
    

    Sample Response:

    {
      "jsonrpc": "2.0",
      "id": -1,
      "result": "1"
    }
    
  • Get Pod Details:

    GET http://localhost:26657/tracks_get_pod?podNumber=1
    

    Sample Response:

    {
      "jsonrpc": "2.0",
      "id": -1,
      "result": [
        {
          "From": "wasmstation1hdxuy3g2jln7lsq5vu3qvp34877jyy2mkvjgha",
          "To": "wasmstation1p20ppaqaeks77h53xrgw83h6a4twzpxqwnafp3",
          "Amount": "1amf",
          "Gas": "119665",
          "TxHash": "64255eb67ea1a93f9943bcccc0ac3d06265b89c5ebd066e1515aaa312639e4ea",
          "ToBalance": "0amf",
          "FromBalance": "999999998amf",
          "Nonce": "0"
        },
        {
          "From": "wasmstation1hdxuy3g2jln7lsq5vu3qvp34877jyy2mkvjgha",
          "To": "wasmstation1p20ppaqaeks77h53xrgw83h6a4twzpxqwnafp3",
          "Amount": "1stake",
          "Gas": "119665",
          "TxHash": "64255eb67ea1a93f9943bcccc0ac3d06265b89c5ebd066e1515aaa312639e4ea",
          "ToBalance": "0stake",
          "FromBalance": "29999998stake",
          "Nonce": "0"
        },
        {
          "From": "wasmstation1hdxuy3g2jln7lsq5vu3qvp34877jyy2mkvjgha",
          "To": "wasmstation148p9k67uuf6smg30e32ndyf0kq9jxx6k6hat95",
          "Amount": "1amf",
          "Gas": "119665",
          "TxHash": "64255eb67ea1a93f9943bcccc0ac3d06265b89c5ebd066e1515aaa312639e4ea",
          "ToBalance": "0amf",
          "FromBalance": "999999998amf",
          "Nonce": "1"
        },
        {
          "From": "wasmstation1hdxuy3g2jln7lsq5vu3qvp34877jyy2mkvjgha",
          "To": "wasmstation148p9k67uuf6smg30e32ndyf0kq9jxx6k6hat95",
          "Amount": "1stake",
          "Gas": "119665",
          "TxHash": "64255eb67ea1a93f9943bcccc0ac3d06265b89c5ebd066e1515aaa312639e4ea",
          "ToBalance": "0stake",
          "FromBalance": "29999998stake",
          "Nonce": "1"
        }
      ]
    }
    

Contributing

Please follow the Code of Conduct in all interactions. For contribution guidelines, see CONTRIBUTING.md.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Contact

For any inquiries or issues, please contact us via Airchains Discord.

Directories

Path Synopsis
abci
server
Package server is used to start a new ABCI server.
Package server is used to start a new ABCI server.
cmd
merkle
Package merkle computes a deterministic minimal height Merkle tree hash.
Package merkle computes a deterministic minimal height Merkle tree hash.
xchacha20poly1305
Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha.
Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha.
Package evidence handles all evidence storage and gossiping from detection to block proposal.
Package evidence handles all evidence storage and gossiping from detection to block proposal.
Package inspect provides a tool for investigating the state of a failed CometBFT node.
Package inspect provides a tool for investigating the state of a failed CometBFT node.
rpc
internal
test
Package factory provides generation code for common structs in CometBFT.
Package factory provides generation code for common structs in CometBFT.
libs
cli
events
Package events - Pub-Sub in go with event caching
Package events - Pub-Sub in go with event caching
flowrate
Package flowrate provides the tools for monitoring and limiting the flow rate of an arbitrary data stream.
Package flowrate provides the tools for monitoring and limiting the flow rate of an arbitrary data stream.
json
Package json provides functions for marshaling and unmarshaling JSON in a format that is backwards-compatible with Amino JSON encoding.
Package json provides functions for marshaling and unmarshaling JSON in a format that is backwards-compatible with Amino JSON encoding.
log
net
os
pubsub
Package pubsub implements a pub-sub model with a single publisher (Server) and multiple subscribers (clients).
Package pubsub implements a pub-sub model with a single publisher (Server) and multiple subscribers (clients).
pubsub/query
Package query implements the custom query format used to filter event subscriptions in CometBFT.
Package query implements the custom query format used to filter event subscriptions in CometBFT.
pubsub/query/syntax
Package syntax defines a scanner and parser for the CometBFT event filter query language.
Package syntax defines a scanner and parser for the CometBFT event filter query language.
package light provides a light client implementation.
package light provides a light client implementation.
rpc
TODO: Better handle abci client errors.
TODO: Better handle abci client errors.
Package node is the main entry point, where the Node struct, which represents a full node, is defined.
Package node is the main entry point, where the Node struct, which represents a full node, is defined.
p2p
pex
Package privval provides different implementations of the types.PrivValidator.
Package privval provides different implementations of the types.PrivValidator.
proto
rpc
core
Package core defines the CometBFT RPC endpoints.
Package core defines the CometBFT RPC endpoints.
jsonrpc
HTTP RPC server supporting calls via uri params, jsonrpc over HTTP, and jsonrpc over websockets
HTTP RPC server supporting calls via uri params, jsonrpc over HTTP, and jsonrpc over websockets
jsonrpc/server
Commons for HTTP handling
Commons for HTTP handling
scripts
metricsgen
metricsgen is a code generation tool for creating constructors for CometBFT metrics types.
metricsgen is a code generation tool for creating constructors for CometBFT metrics types.
metricsgen/metricsdiff
metricsdiff is a tool for generating a diff between two different files containing prometheus metrics.
metricsdiff is a tool for generating a diff between two different files containing prometheus metrics.
indexer/sink/psql
Package psql implements an event sink backed by a PostgreSQL database.
Package psql implements an event sink backed by a PostgreSQL database.
test
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL