Skip to content
Cosmopediaby Unity Nodes
DiscussionsTendermintIntroduction to ABCIx: An eXtension of ABCI with greater flexibility and securityForum ↗

Introduction to ABCIx: An eXtension of ABCI with greater flexibility and security

Tendermint5 posts2,100 views8 likesLast activity Aug 2020
QI
qizhouOP
Jul 2020 3

Application BlockChain Interface eXtension (ABCIx) Overview ABCIx is an extension of ABCI that offers: • greater flexibility in block production : when creating a new block, instead of including the transactions from the mempool in an FIFO manner, ABCIx allows the application to decide which transactions from the mempool will be included and the order; and • greater security : when creating a block, ABCIx allows the application to detect conflicting transactions and remove them from the mempool. This ensures that all transactions in a block are valid, while ABCI allows invalid transactions in a block and defers to the application to handle such transactions; and • more applications : for example, one application is to use TendermintX+ABCIx to serve as a finality gadget of another chain (such as PoW chain); and • backward compatible with ABCI : ABCIx can easily support existing ABCI applications by using ABCI adapter, which is an ABCIx application and provides ABCI to the underly ABCI applications. Similar to ABCI, ABCIx provides the methods in the following ABCIx connections : • Consensus connection: `InitChain`, `DeliverBlock`, `CreateBlock` • Validation…

Excerpt (1199 of 6004 characters). Read the whole post on the forum ↗

ZA
zaki_iqlusion
Jul 2020 3

The cosmos team is very interested in some the changes to ABCI and would be interested in collaborating.

Especially CreateBlock.

QI
qizhou
Jul 2020

Excellent! We would love to collaborate with cosmos team! Do you have any idea of the form of the collaboration?

We are currently reading the TM code and planning the tasks/resources/timeline. We will come up with a itemized tasks soon and probably commit the changes to the forked repo in a few weeks.

JU
junjiah
Jul 2020 1

hey I’m Junjia, chiming in here as a QuarkChain engineer.
we are exploring the possibility of using ABCIx as a finality gadget, thus we plan to implement a quick prototype.

in the meantime, @zaki_iqlusion it would be fantastic if cosmos team could help us do architecture reviews, or something like regular status sync / Q&A for implementation progress. is it possible we can have a point of contact for the future efforts?

fwiw here’s our tentative eng effort scoping / planning


Week of 7/27 + 8/03

  1. Implement DeliverBlock and CheckBlock handling in tendermint
  2. Scaffold CreateBlock code flow
  3. Implement mempool iterator
  4. Implement a dummy ABCIx blockchain app

Week of 8/10 + 8/17

  1. Add priority handling to CheckTx
  2. Finish CreateBlock implementation
  3. Implement ABCIx adaptor

week of 8/24

  1. ABCIx adaptor testing
  2. all the remaining end-to-end testing
ZA
zaki_iqlusion
Aug 2020 1

I suspect this is a more complex feature than your engineering estimates make it out to be.

The Tendermint engineering seems to be busy with other things.

I’m willing to help out. Hit me up on Telegram or the Discord.

← Back to Discussions