t3rn Development Update 1

Matheus Moraes
July 21, 2021

Welcome to the first t3rn Development Update, a retrospective review of the development of the t3rn protocol.

After completing our Web3 Foundation grant and delivering a proof of concept of our unique Gateway solution t3rn joined the Substrate Builders Program where we established an accountable, three milestone development roadmap.

Understanding t3rn development milestones

Milestone 1. The first Circuit prototype that enables us to showcase our product and start work on integration with external blockchain networks and partners.

Milestone 2. Involves making the prototype entirely feature-complete, as detailed in the t3rn whitepaper.

Milestone 3. Shifts the prototype from semi-decentralized Proof of Authority basis to a secure and decentralized form based on Proof of Stake and collateral execution. 

The development team will soon complete the first milestone of the Substrate Builders Program. The team have successfully implemented the ability for the Circuit to collect block witnesses by collecting block headers from all connected relayers contributing blocks and roots from multiple gateways. The current implementation supports blocks using both blake2 (Substrate-compatible) and keccak256 (EVM-compatible) hashing. Block headers and additional information about finality proofs from multiple gateways using a multi-finality-verifier based on the Substrates GRANDPA pallet. 

The development team is moving through the first milestone to the second, with the focus on launching the Circuit Prototype, which hosts binaries of smart contracts and allows them to compose execution on multiple chains and orchestrate results within an interoperable context between multiple Substrate networks as part of this first prototype candidate release.

ABI

Gateways (connected to Circuit consensus systems) can now be described using generic ABI. We are now able to describe the protocol of messaging with a foreign blockchain system using standard types that will be parsed to corresponding types at Circuit’s Runtime only while processing the messages. Expected events generated after smart contract execution can be defined in a format following Ethereum's logs signatures, like `Transfer(address,address,value)`. 

You can view the Gateway protocol implementation implemented for Substrate here.

The following has been implemented:

  • Describe Substrate Gateway Protocol using the ABI
  • Describe gateway primitives with ABI and move to XDNS
  • Receive execution requests from API and process them according to specified IO schedule.
  • Analyze received IO Schedule 
  • Bring function on top of the prototype

Gateways launch

Gateways implemented as part of the Web3 Foundation grant as part of the initial proof of concept need to be upgraded to FRAMEv2 and connected with Circuit. This would allow community/partners to plug-in our Gateway as one of the pallets into their Substrate Runtime. From the perspective of the t3rn protocol, when the Gateway has the runtime access we call it an internal gateway. 

External gateways have already been implemented as part of the Circuit Outbound protocol, so that both types of gateways - external and internal can now be tested and mixed together in the same smart contracts. 

What’s next?

Before completing Milestone 1. the team will need to cover the services with API tests, testing communication between Circuit and all implemented Gateways (external and internal).

Once the first milestone has been completed  the development team can focus on the next milestone and tackle on-chain repository enrichment, delivering a Feature-Complete Proof of Authority Circuit (as detailed in the t3rn Whitepaper) as well as integrating with partnered projects and showcasing the t3rn product in action.

Don't forget to watch for updates on our social media and blogs.

👉 Subscribe to our newsletter: Join 15,000 subscribers for exclusive monthly updates and insights, directly from Maciej Baj, founder & CTO of t3rn. - no spam, unsubscribe anytime.

Thank you. We'll be in touch.
Oops! Something went wrong while submitting the form.