2020 Q4 Hyperledger Transact

Created by Andrea Gunderson, last modified by Gari Singh on Feb 05, 2021


Hyperledger Transact - https://github.com/hyperledger/transact

Project Health

Health is good. Transact has been fully integrated into the Sawtooth Validator, replacing the Python transaction execution platform.

Questions/Issues for the TSC

No issues currently.


Since project creation, the project has had 19 releases. The current release is 0.3.6. The releases are available on crates.io : https://crates.io/crates/transact/versions

Overall Activity in the Past Quarter

Continued incremental improvements to the initial code base. Additional activity shown below. The primary method of discussion continues to be held in RocketChat.

  • Replaced the signing module in libtransact with cylinder
  • Updated to the Scheduler and Executor APIs to improve usage
  • Made various bug fixes and improvements

Current Plans

Next steps include:

  • Stabilize SQLite database support
  • Add a next-generation smart contract API / simplified smart contracts (cross-project with Sawtooth, in progress)
  • Add PostgreSQL database support
  • Further develop the Transact SDK for JavaScript

Maintainer Diversity

The maintainer diversity currently matches that of the initial project sponsor companies.

Contributor Diversity

There were a total of 5 contributors in the last quarter, up from 3 last quarter.

Additional Information

Reviewed By


Re: "Replaced the  signing module in libtransact with cylinder "

The initial project proposal lists that the Hyperledger Transact [quote from the proposal] " will include pluggable support (not implementations) for signing and hashing, with built-in support for Ursa". How is the abstraction supported for users of Transact to choose between ursa and cylinder?

Ref:  https://docs.google.com/document/d/13d0cMReGOhK13BbdgMOFZy_prUzqWBXWc4nlI7mehpY/edit

Posted by arsulegai at Nov 16, 2020 09:42

Do you have any insights into the impact (positive or negative) on the change in Sawtooth? I'm thinking of code size and performance in particular.

Posted by lehors at Nov 16, 2020 13:13

At the last TSC call we decided to request the project reports to include relevant data from the LF Insights tool to make it easier to get that information while reviewing reports (see Add Insights dashboard reference to quarterly reports ). Although we're still looking into some of the details on how this would best be implemented, in the meantime, please add the following link to your report (and from then on carry over the link with rolling dates so th"at it is scoped to the last 3 months):



Posted by lehors at Nov 16, 2020 13:28

From a code size perspective, this removes a lot of Python code from Sawtooth (and Sawtooth 2 will be 100% Rust, so this is an important step). From a performance perspective – we don't have performance data yet, as we are going to do performance testing/analysis of Sawtooth after the rest of the python is removed. We believe Transact is significantly faster but there are a lot of other factors which impact Sawtooth's performance as well, so we will need to collect the data and iterate on the hot spots.

Posted by amundson at Nov 16, 2020 15:08

This abstraction is now delegated to cylinder, but otherwise it remains true.

Posted by amundson at Nov 16, 2020 15:11