11---
2- title : Build Your First Application
2+ title : Build Your First iApp
33description :
4- In this section we will show you how you can create a Docker dapp over the
5- iExec infrastructure.
4+ In this section we will show you how you can create an iApp over the iExec
5+ infrastructure.
66---
77
8- # Build your first application
8+ # Build your first iApp
99
10- > In this section we will show you how you can create a Docker dapp over the
11- > iExec infrastructure.
10+ > In this section we will show you how you can create an iApp (iExec
11+ > confidential application) over the iExec infrastructure.
1212
1313::: tip Prerequisites
1414
1515- [ Docker] ( https://docs.docker.com/install/ ) 17.05 or higher on the daemon and
1616 client.
1717- [ Dockerhub] ( https://hub.docker.com/ ) account.
1818- [ iExec SDK] ( https://www.npmjs.com/package/iexec ) 8.0.0 or higher.
19- [ Install the iExec SDK] ( quick-start-for-developers.md#install-the-iexec-sdk ) .
20- - [ Quickstart] ( quick-start-for-developers.md ) tutorial completed
19+ - [ Quickstart] ( ./quick-start.md ) tutorial completed
2120
2221:::
2322
24- In this guide, we will prepare an iExec app based on an existing docker image
23+ In this guide, we will prepare an iExec iApp based on an existing docker image
2524and we will run it on iExec decentralized infrastructure.
2625
27- ## Understand what is an iExec decentralized application?
26+ ## Understand what is an iExec decentralized application (iApp) ?
2827
2928iExec leverage [ Docker] ( https://www.docker.com/why-docker ) containers to ensure
3029the execution of your application on a decentralized infrastructure. iExec
@@ -46,19 +45,19 @@ supports Linux-based docker images.
4645Today you can run any application as a task. This means services are not
4746supported for now.
4847
49- ## Build your app
48+ ## Build your iApp
5049
5150Create the folder tree for your application in ` ~/iexec-projects/ ` .
5251
5352``` bash
5453cd ~ /iexec-projects
55- mkdir hello-world-app
56- cd hello-world-app
54+ mkdir hello-world-iapp
55+ cd hello-world-iapp
5756mkdir src
5857touch Dockerfile
5958```
6059
61- ### Write the app
60+ ### Write the iApp
6261
6362::: warning
6463
@@ -137,7 +136,7 @@ application. Execution logs are accessible by:
137136
138137:::
139138
140- ### Dockerize your app
139+ ### Dockerize your iApp
141140
142141** Copy the following content** in ` Dockerfile ` .
143142
@@ -192,7 +191,7 @@ way to name the image to reuse it in the next steps.
192191
193192** Congratulations you built your first docker image for iExec!**
194193
195- ## Test your app locally
194+ ## Test your iApp locally
196195
197196### Basic test
198197
@@ -261,9 +260,9 @@ docker run \
261260 arg1 arg2 arg3
262261```
263262
264- ## Test your app on iExec
263+ ## Test your iApp on iExec
265264
266- ### Push your app to Dockerhub
265+ ### Push your iApp to Dockerhub
267266
268267Login to your Dockerhub account.
269268
@@ -289,30 +288,30 @@ Push the image to Dockerhub.
289288docker push < docker-hub-user> /hello-world:1.0.0
290289```
291290
292- ** Congratulations, your app is ready to be deployed on iExec!**
291+ ** Congratulations, your iApp is ready to be deployed on iExec!**
293292
294- ### Deploy your app on iExec
293+ ### Deploy your iApp on iExec
295294
296- You already learned how to deploy the default app on iExec in the
297- [ previous tutorial] ( quick-start-for-developers .md ) .
295+ You already learned how to deploy the default iApp on iExec in the
296+ [ previous tutorial] ( ./ quick-start.md) .
298297
299298Go back to the ` iexec-project ` folder.
300299
301300``` bash
302301cd ~ /iexec-projects/
303302```
304303
305- You will need a few configurations in ` iexec.json ` to deploy your app :
304+ You will need a few configurations in ` iexec.json ` to deploy your iApp :
306305
307- - Replace app ** name** with your application name \( display only\)
308- - Replace app ** multiaddr** with your app image download URI \( should looks like
309- ` docker.io/<docker-hub-user>/hello-world:1.0.0 ` \)
310- - Replace app ** checksum** with your application image checksum \( see tip
306+ - Replace iApp ** name** with your application name \( display only\)
307+ - Replace iApp ** multiaddr** with your iApp image download URI \( should looks
308+ like ` docker.io/<docker-hub-user>/hello-world:1.0.0 ` \)
309+ - Replace iApp ** checksum** with your application image checksum \( see tip
311310 below\)
312311
313312::: info
314313
315- The checksum of your app is the sha256 digest of the docker image prefixed with
314+ The checksum of your iApp is the sha256 digest of the docker image prefixed with
316315` 0x ` , you can use the following command to get it.
317316
318317``` bash
@@ -321,19 +320,19 @@ docker pull <docker-hub-user>/hello-world:1.0.0 | grep "Digest: sha256:" | sed '
321320
322321:::
323322
324- Deploy your app on iExec
323+ Deploy your iApp on iExec
325324
326325``` bash twoslash
327326iexec app deploy --chain {{chainName}}
328327```
329328
330- Verify the deployed app \( name, multiaddr, checksum, owner\)
329+ Verify the deployed iApp \( name, multiaddr, checksum, owner\)
331330
332331``` bash twoslash
333332iexec app show --chain {{chainName}}
334333```
335334
336- ### Run your app on iExec
335+ ### Run your iApp on iExec
337336
338337``` bash twoslash
339338iexec app run --chain {{chainName}} --workerpool {{workerpoolAddress}} --watch
@@ -343,19 +342,19 @@ iexec app run --chain {{chainName}} --workerpool {{workerpoolAddress}} --watch
343342
344343** Using arguments:**
345344
346- You can pass arguments to the app using ` --args <args> ` option.
345+ You can pass arguments to the iApp using ` --args <args> ` option.
347346
348- With ` --args "dostuff --with-option" ` the app will receive
347+ With ` --args "dostuff --with-option" ` the iApp will receive
349348` ["dostuff", "--with-option"] ` as process args.
350349
351350** Using input files:**
352351
353- You can pass input files to the app using ` --input-files <list of URL> ` option.
352+ You can pass input files to the iApp using ` --input-files <list of URL> ` option.
354353
355354With
356355` --input-files https://example.com/file-A.txt,https://example.com/file-B.zip `
357- the iExec worker will download the files before running the app in ` IEXEC_IN ` ,
358- and let the app access them through variables:
356+ the iExec worker will download the files before running the iApp in ` IEXEC_IN ` ,
357+ and let the iApp access them through variables:
359358
360359- ` file-A.txt ` as` IEXEC_INPUT_FILE_NAME_1 `
361360- ` file-B.zip ` as` IEXEC_INPUT_FILE_NAME_2 `
@@ -370,9 +369,9 @@ iexec task show --chain {{chainName}} <taskid> --download my-app-result \
370369 && unzip my-app-result.zip -d my-app-result
371370```
372371
373- ** Congratulations your app successfully ran on iExec!**
372+ ** Congratulations your iApp successfully ran on iExec!**
374373
375- ## Manage your app 's output
374+ ## Manage your iApp 's output
376375
377376iExec enables running apps producing output files, you will need a place for
378377storing your apps outputs.
@@ -390,12 +389,12 @@ the[iExec SDK](https://github.com/iExecBlockchainComputing/iexec-sdk).
390389
391390:::
392391
393- ## Access to app and task logs on iExec
392+ ## Access to iApp and task logs on iExec
394393
395394Sometimes things don't work out right the first time and you may need to
396395[ Debug your tasks] ( /guides/build-iapp/debugging ) .
397396
398- ## Publish your app on the iExec marketplace
397+ ## Publish your iApp on the iExec marketplace
399398
400399``` bash twoslash
401400iexec app publish --chain {{chainName}}
@@ -405,14 +404,14 @@ iexec app publish --chain {{chainName}}
405404
406405## What's next?
407406
408- In this tutorial you learned about the key concepts for building an app on
407+ In this tutorial you learned about the key concepts for building an iApp on
409408iExec:
410409
411- - iExec app inputs and outputs
412- - iExec app must produce a ` computed.json ` file \( required for the proof of
410+ - iExec iApp inputs and outputs
411+ - iExec iApp must produce a ` computed.json ` file \( required for the proof of
413412 execution\)
414- - using docker to package your app with all its dependencies
415- - testing an iExec app locally
413+ - using docker to package your iApp with all its dependencies
414+ - testing an iExec iApp locally
416415- publishing on dockerhub
417416
418417<script setup >
0 commit comments