Devnet 2.0 and the new Oasis SDK

Improving blockchain developer experience by streamlining the software framework

Dawn Song
Oasis Labs
Published in
4 min readAug 15, 2019

--

At Oasis we’re building a blockchain for the real world. That starts with improving blockchain’s core technology with a scalable architecture that can support enterprise workloads and confidential smart contracts that keep data private and secure. But it can’t end there. If we expect blockchain to see meaningful adoption, we need to not only overcome blockchain’s technical hurdles, we must also solve a unique set of usability issues.

Blockchains today are challenging to build on. They often require navigating complicated and nuanced user flows, learning a custom language, and having a deep understanding of blockchain technology. Our goal is to provide the properties of the Oasis blockchain, like integrity, confidentiality and immutability, without these requirements — to deliver the value of blockchain, but in a development environment that looks and feels just like a traditional cloud platform.

To accomplish this goal, we’ve completely overhauled the development experience on Oasis, abstracting the nuances of blockchain and streamlining contract and app creation with the Oasis SDK and Devnet 2.0. Here’s what we’ve released:

  • A Rust library that streamlines contract development
  • A new CLI that lets you easily interact with the Oasis Network
  • A new JavaScript client so web apps can easily call services on the Oasis Network
  • Devnet 2.0 with a WASI Runtime to support better, community-developed tooling
  • Improved Dashboard user design and experience

Together, these new tools make it easier than ever to develop applications that require high-integrity in compute or strong privacy guarantees. To learn more about the Oasis Network and start building, check out our dashboard.

Image 1: The building blocks of the Oasis Network. Oasis Dashboard and Oasis CLI are frontend tools to manage services on the Oasis Network. We are introducing Oasis client SDK and Oasis Gateway (coming soon) to simplify interacting with the Oasis Network and the services deployed on the Oasis Network.

Bridging the gap: Smart Contracts & Cloud Services

Mirroring the smart contract development experience on blockchain with traditional cloud platforms isn’t just useful for productivity, it’s also a valuable mental model for smart contracts in general. Just like functions in serverless cloud computing, a smart contract on a blockchain network is akin to a group of functions, with state persisted on a distributed immutable ledger. Unlike other blockchain networks, a confidential smart contract running on the Oasis network provides confidentiality and privacy at every layer of the hardware and software stack.

To take the analogy a step further, we use the term service instead of “smart contract” to describe functions on the Oasis Network. For example, a service may be a single-use smart contract to execute an atomic trade between two tokens, or a set of interacting smart contracts that support holding collateralized debt positions.

Towards a better development experience with Devnet 2.0 and the Oasis SDK

We designed our new development library, oasis-std, to let you use all of your standard Rust tooling like Cargo and any normal testing tools, like Clippy. Combined with our WASI runtime, this new development environment also helps simplify and leverage unique blockchain functionality. For example, checking a balance is as simple as reading a file. The result is a development experience that looks and feels like a traditional Rust environment, with simple abstractions to help your services operate on a blockchain platform. With this latest release, we’ll also sunset some of our older tools in favor of a more streamlined end-to-end development experience. Web3c will be sunset along with confidential smart contracts written in Solidity. We’ll continue to support confidential smart contracts written in Rust, but we’ve made coding much faster and more efficient with our new development framework.

The dashboard has been completely redesigned with a new user interface and improved flows. Uploading and deploying services has been streamlined, and you can now view project-level analytics of active users and costs based on recent usage all on one page.

Finally, with this release we’re also introducing Devnet 2.0, which features a Wasm runtime with support for WebAssembly System Interface (WASI) for blockchain. Using a WASI-based Wasm environment not only gives developers the sandboxing abilities inherent to Wasm, but also portable binaries that can build anywhere and run on Devnet 2.0. This makes it possible to leverage the wider Wasm ecosystem of developer tools and libraries in Oasis services — making our platform accessible to more developers.

Looking forward

Building a better development experience is an iterative process that requires a steady cadence of feedback and innovation. With this latest release we’re proposing our first version of this experience — a v1.0 if you will — and we’re excited to see it’s evolution. Our new WASI runtime, for example, gives us the ability to support a range of new languages in the future.

We’re also working to improve usability around end-user flows for blockchain. In the coming releases we’ll introduce a new gateway with a simplified RPC and the ability for developers to pay transaction fees on behalf of the end user.

We’re excited to seeing what you build with these tools, here are just a few examples of some exciting projects already being built the network:

  • Kara is building a privacy-preserving data marketplace for healthcare, and was recently featured in Wired magazine.
  • Genobank.io offers a confidential DNA sequencing kit powered by blockchain. Hear from their CEO and Co-founder Daniel Uribe in our latest developer spotlight.

If you’d like to tell us about your own project on the Oasis network, or have questions about the latest release you can email us at feedback@oasislabs.com or join our community Slack channel.

For more info on Oasis email us at feedback@oasislabs.com or go to www.oasislabs.com.

--

--

Dawn Song
Oasis Labs

Professor in Computer Science at UC Berkeley; Research in AI, Security, Blockchain; Serial entrepreneur