Project Dovetail™

Writing smart contracts for today’s blockchain platforms is difficult.  No standardization, varying capabilities, and limited tooling all result in time lost and an increased possibility of introducing errors into the system.  And, how do you pick the “winning” technology from today’s vast number of choices, in order to eliminate the need to “start from scratch” if your choice does not turn out to be the correct option?  Project Dovetail™ is designed to address this problem. 

Provider

TIBCO LABS™

License

None

Overview

By utilizing a blockchain-agnostic, model-driven approach to smart contract development, developers can quickly build smart contracts that are abstracted from low level code, allowing one to deploy the logic into different blockchain technologies with little to no change.  The logic is visually represented so that the business can easily understand the flow of logic, while still allowing for any necessary customization and extensions.  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™ helps make your smart contracts smarter.

Submit Feedback

Release(s)

Project Dovetail™ Release

Published: November 2018

It's here!  Check us out at https://github.com/TIBCOSoftware/dovetail

There are currently no reviews for this content.

Why not be the first to review it - click here to login

Project Dovetail™

Overview

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. 

Movie icon short demo (05:37)

Movie icon 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:Ethereum Greeter Smart Contract

While a smart contract written for Hyperledger Fabric will look like:

Hyperledger Fabric Chaincode Example

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.

Architecture diagram

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.

Project Dovetail Architecture diagram

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:

Blockchain Enterprise Architecture Considerations

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

Other Links

View the Wiki Page