This paper reports on a comparative study of two recent software development kits (SDKs) for so-called “Application-specific Blockchains” that support development of smart contracts in general-purpose languages. Specifically we report on the similarities and differences between Cosmwasm and Polkadot smart contracts written in the Rust programming language. To help guide our comparative study we start from a representative set of Solidity smart contracts, namely an English auction contract and a Non-Fungible Token (NFT) contract. Both contracts offer insights into the requirements that must be offered by a smart contract SDK. We develop a concrete baseline for comparison between Cosmwasm and Polkadot by translating the two Solidity contracts into Rust, using the respective SDKs. Our comparison defines a starting point for better understanding the design space of smart contract SDKs, and what the advantages and disadvantages are of different API interfaces and execution models.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

A Comparative Study of Rust Smart Contract SDKs for Application-Specific Blockchains

  • Jan Vanhoof,
  • Tom Van Cutsem

摘要

This paper reports on a comparative study of two recent software development kits (SDKs) for so-called “Application-specific Blockchains” that support development of smart contracts in general-purpose languages. Specifically we report on the similarities and differences between Cosmwasm and Polkadot smart contracts written in the Rust programming language. To help guide our comparative study we start from a representative set of Solidity smart contracts, namely an English auction contract and a Non-Fungible Token (NFT) contract. Both contracts offer insights into the requirements that must be offered by a smart contract SDK. We develop a concrete baseline for comparison between Cosmwasm and Polkadot by translating the two Solidity contracts into Rust, using the respective SDKs. Our comparison defines a starting point for better understanding the design space of smart contract SDKs, and what the advantages and disadvantages are of different API interfaces and execution models.