Developing blockchain solutions with today’s technology is challenging, given the lack of tooling and standardization. Project Dovetail™ by TIBCO LABS™ addresses these issues by providing a graphical interface for modeling smart contracts, making them easier to write, visualize, test, and audit, all without deep programming experience. Logic is abstracted from low-level code, and contracts can be deployed into different blockchain stacks with little or no change. On-chain and off-chain computation can become more seamless, time to market is improved, and the risk of technology lock-in is reduced. Project Dovetail makes your smart contracts smarter.
short demo (05:37)
long demo (18:49)
What are Smart Contracts?
There are many definitions and descriptions of smart contracts, as each blockchain framework tends to implement this capability in its own way (if it does implement this feature at all). However, generally speaking, smart contracts (at least from an enterprise / permissioned perspective) may be thought of as application or business logic (defined in code) that runs within the context of a blockchain network itself. The idea is to automate the processing of blockchain transactions across the network, use the logic to determine if a transaction will get written to the ledger, and to maintain accuracy, compliance, and trust. In essence, smart contracts represent a method for controlling how changes are made to the underlying blockchain, in a non-centralized and (potentially) untrustworthy environment. Supply chain transaction tracking, healthcare revenue cycle management, consumer contract execution, and government interactions are all areas in which smart contracts (business logic) may be applied. Remember, however, that "smart contracts" are not necessarily "smart" (depends on the code) nor "contracts" (as they may not be viewed as legal contracts). Thus, the term can be a bit misleading :)
Approaches to Creating Smart Contracts
There are many! Each blockchain platform that supports smart contracts tends to do so in its own way. There are no standards, and many of the languages are proprietary. This forces you to learn a non-transferable language, and also promotes vendor lock-in. For example, a smart contract written for Ethereum will often look like the following:
While a smart contract written for Hyperledger Fabric will look like:
This is obviously an issue, and an area that we, at TIBCO LABS, sought to address.
Introducing the Project Dovetail™ Approach!
Project Dovetail™ is a framework that allows for the end to end design, development, testing, and deployment of blockchain smart contracts. Project Dovetail™ allows you to develop smart contracts based on a series of models, helping to:
- Increase security since the modeling abstraction layer will allow for reusable and tested code derived from the model.
- Simplify development via an extendable abstraction layer (flow model)
- Decouple your code from the underlying blockchain technology
- Reduce the amount of code needed
- Increase visibility and audit-ability
- Allow customizable modeling for your industry
- Expose a better UI for the design of smart contracts
Based upon existing open source components and TIBCO's own lightweight Golang-based / open source engine (Project Flogo), Project Dovetail is designed to be light-weight, easily extensible, and embeddable, allowing for the rapid development of blockchain-based solutions.
At a high-level, Project Dovetail may be thought of as having four main components:
- CLI: Used to deploy the defined smart contracts to the target blockchain layer.
- UI: Used to build the blockchain smart contract logic. Users may utilize pre-built drag-and-drop activities, incorporate code or build any necessary extensions. Data may also be mapped and transformed.
- Metadata: Describes the underlying model(s) that supports the blockchain smart contracts.
- Interpreter: Executes the deployed smart contract in the context of the blockchain target.
These components together comprise the Project Dovetail solution, and allow users to build smart contracts that are targeted at various blockchain platforms.
Incorporating Smart Contracts Into Your Enterprise
Smart Contracts, however, are not the only item that organizations need to consider when deployment blockchain-based solutions. For example, one often has to think of architectural components like the following:
For more information, please see the whitepaper located here.
Located in a GitHub Near You
TIBCO is committed to participating in the open source community. Thus, Project Dovetail is available as a open source project, and available for community participation. For more details, and to check us out, please visit the site at https://github.com/TIBCOSoftware/dovetail