Appchain Templates Included in Tanssi¶
Introduction¶
Building a new appchain from scratch can be a daunting prospect. Fortunately, thanks to the appchain development framework used by Tanssi and its modular-oriented architecture, developers can leverage some pre-bundled appchain templates that help them jumpstart the process and benefit in some aspects, such as:
-
Head Start - Tanssi appchain templates provide a starting point for your project, saving significant time and effort by providing a basic structure and a set of tested and ready-to-use functionalities. It allows developers to accelerate the construction of prototypes or minimum viable products (MVPs) and reduce the time to market
-
Consistency - included Tanssi appchain templates follow established design patterns, coding standards, and best practices widely accepted among the developer community. They also provide a default set of architecture definitions to streamline blockchain development
-
UX - Tanssi appchain templates cover the most demanded use cases, such as the EVM support for an Ethereum-compatible appchain
-
Customizability - Tanssi appchain templates are a great starting point and are completely customizable. The functionalities and default configurations they include can be modified, replaced, or extended to meet the specific requirements of the use case
-
Upgrades and Compatibility - Tanssi is built on top of an evolving framework, with new features, enhancements, and bug fixes being regularly introduced. The provided Tanssi appchain templates are kept up-to-date with these upgrades
Start Building an Appchain¶
To start building an appchain to deploy in Tanssi, some useful Tanssi appchain templates to kick-start the development process are provided in the official repository.
The process is as simple as:
- Select one of the templates
- Add the specific logic to adapt the runtime to the requirements of the use case
- Deploy in Tanssi
The two included templates are Baseline appchain template and Baseline EVM Template, which are presented in the following sections.
Baseline Appchain Template¶
As presented in the Overview article, appchains deployed through Tanssi are fully sovereign and customizable blockchains.
As part of the Tanssi ecosystem, appchains must include the essential components to implement the consensus mechanism and be able to interact and synchronize with the security provider of their choice (for example, Symbiotic on Ethereum). The baseline Tanssi appchain Template includes all the necessary functionality for the block producers logic, p2p, database, and synchronization layers between the appchain and the security provider, allowing developers to focus solely on customizing their product.
This template also includes Tanssi's Author Noting module, which implements the logic for retrieving and validating the set of sequencers assigned to provide block production services to the appchain. It also includes logic that allows a sequencer to sign the block when the consensus mechanism determines that it is the sequencer's turn to produce the block (and thus be rewarded accordingly).
The source code for this template is public and accessible on the Tanssi GitHub repository.
Baseline EVM (Ethereum Virtual Machine) Template¶
Extending the baseline Tanssi appchain template, this template provides not only Tanssi protocol support but also an EVM and full Ethereum compatibility.
Leveraging a set EVM-specific modules, this template includes an Ethereum compatibility layer for appchains to allow running unmodified Ethereum dApps.
Using this template, appchains support the deployment and running of any existing Smart Contract written in Solidity or Vyper with no changes. By emulating Ethereum block production and exposing the expected RPC interface, developers can also continue using the same tools like Metamask, Hardhat, Remix, Foundry, and many more out of the box, with no extra adapters.
With this EVM template, developers can deploy a Moonbeam-like appchain in no time and add their custom logic and features specific to their use case.
The source code for this template is public and accessible on the Tanssi GitHub repository.
| Created: July 10, 2023