You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+85-26Lines changed: 85 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,3 @@
1
-
2
1
[](https://gitter.im/iurimatias/embark-framework?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Embark is a framework that allows you to easily develop and deploy DApps.
9
+
Embark is a framework that allows you to easily develop and deploy Decentralized Applications (DApps).
10
+
11
+
A Decentralized Application is serverless html5 application that uses one or more decentralized technologies.
12
+
13
+
Embark currently integrates with EVM blockchains (Ethereum), Decentralized Storages (IPFS), and Decentralizaed communication platforms (Whisper and Orbit). Swarm is supported for deployment.
11
14
12
15
With Embark you can:
16
+
17
+
**Blockchain (Ethereum)**
13
18
* Automatically deploy contracts and make them available in your JS code. Embark watches for changes, and if you update a contract, Embark will automatically redeploy the contracts (if needed) and the dapp.
14
-
*Use any build pipeline or tool you wish, including grunt and meteor. (for 1.x, plugins coming soon for 2.x series)
19
+
*Contracts are available in JS with Promises.
15
20
* Do Test Driven Development with Contracts using Javascript.
16
-
* Easily deploy to & use decentralized systems such as IPFS.
17
21
* Keep track of deployed contracts, deploy only when truly needed.
18
22
* Manage different chains (e.g testnet, private net, livenet)
19
-
* Quickly create advanced DApps using multiple contracts that can interact with decentralized infrastructure for storage and comunication.
23
+
* Easily manage complex systems of interdependent contracts.
24
+
25
+
**Decentralized Storage (IPFS)**
26
+
* Easily Store & Retrieve Data on the DApp through EmbarkJS. Includin uploading and retrieving files.
27
+
* Deploy the full application to IPFS or Swarm.
28
+
29
+
30
+
**Decentralized Communication (Whisper, Orbit)**
31
+
* Easily send/receive messages through channels in P2P through Whisper or Orbit.
32
+
33
+
**Web Technologies**
34
+
* Integrate with any web technology including React, Foundation, etc..
35
+
* Use any build pipeline or tool you wish, including grunt, gulp and webpack.
20
36
21
37
Table of Contents
22
38
======
@@ -28,18 +44,18 @@ Table of Contents
28
44
*[Using and Configuring Contracts](#dapp-structure)
29
45
*[EmbarkJS](#embarkjs)
30
46
*[EmbarkJS - Storage (IPFS)](#embarkjs---storage)
31
-
*[EmbarkJS - Communication (Whisper)](#embarkjs---communication)
47
+
*[EmbarkJS - Communication (Whisper/Orbit)](#embarkjs---communication)
32
48
*[Testing Contracts](#tests)
33
49
*[Working with different chains](#working-with-different-chains)
note: array of topics are considered an AND. In Whisper you can use another array for OR combinations of several topics e.g ```["topic1", ["topic2", "topic3"]]``` => ```topic1 AND (topic2 OR topic 3)```
419
+
376
420
Tests
377
421
======
378
422
@@ -424,9 +468,9 @@ Working with different chains
424
468
You can specify which environment to deploy to:
425
469
426
470
427
-
```$ embark blockchain production```
471
+
```$ embark blockchain livenet```
428
472
429
-
```$ embark run production```
473
+
```$ embark run livenet```
430
474
431
475
The environment is a specific blockchain configuration that can be managed at config/blockchain.json
432
476
@@ -439,7 +483,7 @@ The environment is a specific blockchain configuration that can be managed at co
439
483
"rpcPort": 8545,
440
484
"rpcCorsDomain": "http://localhost:8000",
441
485
"account": {
442
-
"password": "config/production/password"
486
+
"password": "config/livenet/password"
443
487
}
444
488
},
445
489
...
@@ -448,32 +492,47 @@ The environment is a specific blockchain configuration that can be managed at co
448
492
Structuring Application
449
493
======
450
494
451
-
Embark is quite flexible and you can configure you're own directory structure using ```embark.json```
495
+
Embark is quite flexible and you can configure your own directory structure using ```embark.json```
452
496
453
497
```Json
454
498
# embark.json
455
499
{
456
500
"contracts": ["app/contracts/**"],
457
501
"app": {
458
502
"css/app.css": ["app/css/**"],
503
+
"images/": ["app/images/**"],
459
504
"js/app.js": ["embark.js", "app/js/**"],
460
505
"index.html": "app/index.html"
461
506
},
462
507
"buildDir": "dist/",
463
-
"config": "config/"
508
+
"config": "config/",
509
+
"plugins": {}
464
510
}
465
511
```
466
512
467
-
Deploying to IPFS
513
+
Deploying to IPFS and Swarm
468
514
======
469
515
470
-
To deploy a dapp to IPFS, all you need to do is run a local IPFS node and then run ```embark ipfs```.
471
-
If you want to deploy to the livenet then after configuring you account on ```config/blockchain.json``` on the ```production``` environment then you can deploy to that chain by specifying the environment ```embark ipfs production```.
516
+
To deploy a dapp to IPFS, all you need to do is run a local IPFS node and then run ```embark upload ipfs```.
517
+
If you want to deploy to the livenet then after configuring you account on ```config/blockchain.json``` on the ```livenet``` environment then you can deploy to that chain by specifying the environment ```embark ipfs livenet```.
472
518
473
-
LiveReload Plugin
519
+
To deploy a dapp to SWARM, all you need to do is run a local SWARM node and then run ```embark upload swarm```.
520
+
521
+
Plugins
474
522
======
475
523
476
-
Embark works quite well with the LiveReload Plugin
524
+
It's possible to extend Embarks functionality with plugins. For example the following is possible:
525
+
526
+
* plugin to add support for es6, jsx, coffescript, etc (``embark.registerPipeline``)
527
+
* plugin to add standard contracts or a contract framework (``embark.registerContractConfiguration`` and ``embark.addContractFile``)
528
+
* plugin to make some contracts available in all environments for use by other contracts or the dapp itself e.g a Token, a DAO, ENS, etc.. (``embark.registerContractConfiguration`` and ``embark.addContractFile``)
529
+
* plugin to add a libraries such as react or boostrap (``embark.addFileToPipeline``)
530
+
* plugin to specify a particular web3 initialization for special provider uses (``embark.registerClientWeb3Provider``)
531
+
* plugin to create a different contract wrapper (``embark.registerContractsGeneration``)
532
+
* plugin to add new console commands (``embark.registerConsoleCommand``)
533
+
* plugin to add support for another contract language such as viper, LLL, etc (``embark.registerCompiler``)
534
+
535
+
For more information on how to develop your own plugin please see the [plugin documentation](http://embark.readthedocs.io/en/latest/plugins.html)
0 commit comments