Learning the iExec SDK: Blockchain Development Fundamentals and Real-World Application Deployment

Delton Rhodes
Ethex
Published in
7 min readOct 11, 2018

--

When it comes to decentralized cloud computing, there are several major projects aiming to change the way we power applications. However, developing a protocol is more than just about providing a technical solution. It’s also about developing the foundations necessary to build a thriving ecosystem of developers and users.

iExec (RLC) is one project that has already launched a number of useful blockchain-based solutions. The iExec Marketplace, iExec SDK, Dapp Store, and Data Wallet (launching in v3, scheduled for release on 05/31/2019) all present excellent examples of this.

In this article, I’ll explain how I tried to learn more about this project via the iExec SDK. I’ll also look at how this project is actively building innovative use cases for the RLC token.

Note: This is a story about my own user experience with the iExec SDK and doesn’t serve as an all-encompassing tutorial. You can find more information by going to the main documentation page or the iExec project Github.

There are already several innovative use cases for the iExec project and RLC tokens.

Examining the Details of the iExec SDK

Yes, most of the top blockchain projects on the market today rely upon an open-source community. While many have enough documentation for highly-experienced developers to contribute to their efforts, many lack basic tutorials of how to begin utilizing their protocols.

In contrast, iExec offers resources that allow users to not only understand the fundamentals of iExec development but also how to build real-world applications for the iExec project. According to the project website, iExec offers CLI and JS libraries that allow developers to overcome Ethereum scalability issues by executing ‘off-chain’ computations through the iExec decentralized cloud.

My Experience Using the iExec SDK (Beginner Level Tutorial on Katacoda)

The tutorial has two main purposes. First, it shows how users can initialize and submit their own their own iExec dapps. Second, it shows the process of how users can submit and fill work orders for real-world tasks (i.e. object rendering).

Note that, as of October 2018, it appears that developers can only easily deploy testnet dapps. However, developers will soon also be able to deploy on the mainnet.

When you click “Try Our Tutorial” on the iExec project website, you can begin the process of learning the basics of the iExec SDK. You’ll be redirected to a Katacoda tutorial.

The iExec SDK tutorial can be found on Katacoda.com. You’ll need to sign up first, though.

You’ll probably also want to try the dapp deployment process using your machine’s CLI. Katacoda is helpful in verifying that you get the intended results when you input each command. However, I ran into a bit of trouble at Step 3 of 3.

Even beginners can follow tutorials to understand how to initialize an iExec project, check wallet balances, and more via Katacoda’s step-by-step tutorial and terminal simulator.
The process of getting test ETH is simple.

It’s important to note that not all steps of this simulation are automated. You’ll have to get some test ETH for the Kovan Testnet. There are a variety of ways in which you can do this, but the best way is probably to utilize Gitter.im. Luckily, a good tutorial exists for that process already.

Screenshot from https://gitter.im/kovan-testnet/faucet

Once you have the necessary funds, you can return to the tutorial and proceed. The most direct option is to send funds to the address listed in the Katacoda terminal. Alternatively, you can request funds to be sent to your Metamask account or use existing funds in Metamask. Then, you can transfer these funds to your simulation RLC wallet, which can hold both testnet ETH and nRLC.

Step 2 — Deploying an iExec App

Once you have ETH and RLC funds, you’re ready to get started with app deployment. However, according to the Katacoda tutorial, your app needs to be dockerized and publicly available on the Docker hub. If you don’t include this step, you won’t be able to deploy. I wish that the Katacoda tutorial for the iExec SDK would also include a step-by-step process on how to accomplish this.

When using the Katacoda platform, I found that it’s not possible to change information via normal CLI commands like “nano iexec.json” for making edits to the default application. Still, you can do this simply by editing the file at the top of the page. I tried to deploy the app; however, I didn’t receive any response from the Katacoda terminal at first. To verify that no deployment took place, I used the “iexec app count” command and saw that 0 apps were found.

The app deployment didn’t work out well for me via Katacoda. I eventually got it to work, but I also looked for other solutions after trying this out.

Eventually, I was able to use Katacoda. However, on Step 3 of 3, I found that I had to request 13,353 or more RLC just to simulate a work order. I went back to Step 1 of 3 and requested more RLC, but this solution didn’t work.

I tried to launch an order request but couldn’t do so due to the fact that my account didn’t have enough nRLC. It appears that 200 nRLC is the maximum amount one can get via Katacoda. One work order alone requires a significantly higher amount of nRLC.

Trying to Utilize the iExec SDK Via My Computer Terminal

In addition to the Katacoda tutorial, I wanted to find a different solution that would allow me to launch a basic iExec dapp. I found a Youtube tutorial on how to use Katacoda to learn the iExec SDK via Katacoda. Unfortunately, this was designed for v1, which is now depreciated. Thankfully, however, the iExec team had uploaded a series of three videos that show how to use an actual CLI to launch an iExec dapp. Note: You’ll first need to install Node JS on your computer. Similar to the Katacoda tutorial, I wasn’t able to simulate work due to lack of nRLC funds.

Three Easy Steps to Utilizing the iExec SDK

Part 1: Initializing the Project

Part 2: Deploying and Monetizing an iExec Dapp

Part 3: Using RLC to Buy and Run Work

Using my computer’s terminal, I was able to deploy a new iExec dapp (iexec app deploy) and verify that the dapp was created (iexec app count).
With the “iexec app show” command, I was able to view details about the newly-created app.
Side-by-side Comparison: Like with the Katacoda tutorial, prices for work are significantly lower on the Youtube demonstration vs. when I tried the tutorial.

Use Case: Rendering a Blender Object

One of iExec’s most important use cases is that users have the ability to buy and sell computing power. This means that it’s possible for one user to pay another user RLC to complete work like the rendering of a Blender object. Below is an example featured in on the iExec team’s Youtube channel. This use case has the potential to have an important, tremendously positive impact on the future of 3D design.

The iExec protocol in action. The full video can be found here.

Conclusion

After not being able to properly utilize the Katacoda tutorial, I was able to easily follow the three-part video series and launch a dapp via my computer’s terminal. Although I created something that was pretty simple, this process is important for a couple of reasons.

First, it shows that it’s crucial to keep learning and not let obstacles get the best of you. Learning requires diligence and patience. Oftentimes, it’s beneficial (and even necessary) to learn through trial-and-error.

Second, it shows that blockchain protocols can build helpful documentation, tutorials, and more for their communities. iExec is an awesome example of how it’s possible to create an SDK that allows anyone to learn about a new protocol and understand how it can be used in real-world applications.

Trading on Ethex

RLC is a useful token that is listed on Ethex.market. We only list useful tokens that have shipped to mainnet. We are happy to support iExec and other like minded projects. If you have any you think should be listed, fill this form out.

I can’t wait to see what the iExec team will achieve in the future, and I’m especially looking forward to the v3 launch scheduled for 2019.

--

--