Accepting Smart Contract Rollouts

As the CTO of a trade association coordinating the exchange of smart contracts across many independent companies I want to be able to roll out new versions of smart contract applications in a controlled way.

Terminology

How Are Smart Contract Applications Different ?

Traditional Application
Smart Contract Applications

Problem

This example shows how a consortium of companies (A, B and C) will only be able to share transactions if all companies support the smart contract version used in the transaction. On the right hand side C does not support v3.0 causing failure.

Assumptions

  • Rolling out a new smart contract version will often require accompanying changes to other business processing software.
  • The main driver for taking the updated version is that it provides enhanced utility (as opposed to say patching an exploit).
  • The rollout should be performed with minimal down time.
  • It is possible for the application to support two smart contract versions in parallel.
  • Any migration of smart contract instances from earlier versions to more recent versions will be a follow-on exercise and is not considered here.

Accept-Then-Publish

On the left C can only accept v2.0 so A creates a v2.0 transaction which is accepted by C. On the right C has upgraded meaning that A can now safely start creating v3.0 transactions involving B and C.
  • The chosen version must work for multiple parties not just two.
  • The chosen version may be based on a wider set of companies than those involved in the initial transaction. For example it may be that the transaction will be disclosed to a number of broker companies later in its lifecycle.
  • As many distributed ledgers are asynchronous the choice of which smart contract version to use may need to be made while one or more companies are unavailable or offline.

Discovery

On the left A broadcasts to B and C that it accepts v3.0. On the right A inquires whether B and C support v3.0, B does C does not.

Publishing

Conclusion

--

--

--

London based developer of software and ideas. To get in contact www.linkedin.com/in/simon-maxen.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

THE UNIQUENESS OF THINKIUM ECOSYSTEM

China Expands Oversight Over Blockchain with New Anti-Anonymity Regulations

Interact with smart contracts and Create first Dapp using web3.js

Get Ready For The First Neblio Buildathon

Partnership Announcement — Crema Finance x Hedge

Distributed ledgers: blockchain vs DAG

Humans of Blockchain (Lebanon)

EOS Communication Model

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Simon Maxen

Simon Maxen

London based developer of software and ideas. To get in contact www.linkedin.com/in/simon-maxen.

More from Medium

Blockchain Technology: 10 Things You Should Know.

Ruby on Rails Version 7.0

Auto Programming with GPT-3

Installing an Apache HTTP Web Server on CentOS 8 Server