Skip to content

Commit

Permalink
Work on chapters 13–18, plus minor fixes elsewhere
Browse files Browse the repository at this point in the history
  • Loading branch information
rrthomas committed Aug 14, 2018
1 parent 6a650bf commit bfa90d5
Show file tree
Hide file tree
Showing 11 changed files with 426 additions and 407 deletions.
104 changes: 61 additions & 43 deletions consensus.asciidoc

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion contrib/google-cloud-testnet.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ for each component subdomain that points to the IP address of the GCE instance.

## Using the testnet

### Connecting with Metamask
### Connecting with MetaMask

1. In the MetaMask network dropdown, select "Custom RPC".

Expand Down
6 changes: 3 additions & 3 deletions contrib/governance.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ of reasons and may have a broad array of differing needs and objectives in using
There is a broader set of stakeholders that includes parties such as exchanges, hedge funds,
blockchain bridge operators, consultants, governments, etc. that are beyond the scope of this
chapter. Note as well that many users may fall into multiple of the above categories, leading to
potentially far more complex sets of overlapping incentives: I may be both a Dapp developer, in
potentially far more complex sets of overlapping incentives: I may be both a DApp developer, in
which case I want network utilization and fees to remain low, but also participate in mining, in
which cases I prefer higher utilization and higher fees.

Expand Down Expand Up @@ -631,12 +631,12 @@ more incentivized than miners to see the value of ether rise. See <<proof of sta
information on the process of validation.

* *Application developers:* Whereas Bitcoin is a relatively simplistic distributed ledger, Ethereum
allows developers to build and deploy applications of arbitrary complexity known as "Dapps"
allows developers to build and deploy applications of arbitrary complexity known as "DApps"
(decentralized applications). Developers of such applications running on Ethereum are incentivized
to keep fees low and to keep network utilization down so that users of their application can
interact with it cheaply and easily. They also want the Ethereum network to scale so that it can
handle greater load. Note that this puts them at odds with miners, who want higher fees and fuller
blocks. Dapp developers may also want to add extra features to Ethereum to enable a broader range of
blocks. DApp developers may also want to add extra features to Ethereum to enable a broader range of
applications to be developed and run on the network.

==== Process
Expand Down
143 changes: 74 additions & 69 deletions dapps.asciidoc

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions dev-tools.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ $ npm install dotenv truffle-wallet-provider ethereumjs-wallet

You now have a +node_modules+ directory with several thousand files inside your Faucet directory.

Prior to deploying the DApp to a cloud production or continuous integration environment it is important to specify the +engines+ field so that your Dapp is built with the correct Node.js version and its associated dependencies are installed.
Prior to deploying the DApp to a cloud production or continuous integration environment it is important to specify the +engines+ field so that your DApp is built with the correct Node.js version and its associated dependencies are installed.

Package.json +engines+ field configuration: https://docs.npmjs.com/files/package.json#engines

Expand Down Expand Up @@ -469,7 +469,7 @@ Unlike Solidity's libraries, the implementations offered by zeppelin_os can be t

At the core of zeppelin_os sits a very clever contract known as a "proxy". A proxy is a contract that is capable of wrapping any other contract, exposing its interface without having to manually implement setters and getters for it, and can upgrade it without losing state. In Solidity terms, it can be seen as a normal contract whose business logic is contained within a library, which can be swapped for a new library at any time without losing its state. The way in which the proxy links to its implementation is completely automated and encapsulated for the developer. Practically any contract can be made upgradeable with little to no change in its code. More about zeppelin_os's proxy mechanism can be found in zeppelin_os's blog: https://blog.zeppelinos.org/[upgradeability-using-unstructured-storage], and an example of how to use it can be found here: https://github.com/zeppelinos/zos-lib/tree/master/examples/single.

The OS wraps its implementations in packages or "releases" that can be vouched for using ZepTokens. ZepTokens can be staked against a release, signaling that it is the community's accepted implementation. Anyone can submit new releases that can be scrutinized by the community and eventually accepted as official. As a reward, developers of a release receive tokens each time it is vouched for. As a Dapp developer, vouching provides a measurable way to determine how much is staked for a given release, and hence how much it can be trusted.
The OS wraps its implementations in packages or "releases" that can be vouched for using ZepTokens. ZepTokens can be staked against a release, signaling that it is the community's accepted implementation. Anyone can submit new releases that can be scrutinized by the community and eventually accepted as official. As a reward, developers of a release receive tokens each time it is vouched for. As a DApp developer, vouching provides a measurable way to determine how much is staked for a given release, and hence how much it can be trusted.

Developing applications using zeppelin_os is similar to developing JavaScript applications using NPM. An AppManager handles an application package for each version of the application. A package is simply a directory of contracts, each of which can have one or more upgradeable proxies. The AppManager not only provides proxies for application-specific contracts, but also does so for zeppelin_os implementations, in the form of a standard library. To see a full example of this, please visit: https://github.com/zeppelinos/zos-lib/tree/master/[examples/complex].
//// TODO: the example provided above is still a WIP - link to a tutorial once it's finished
Expand Down Expand Up @@ -529,7 +529,7 @@ The documentation and installation instructions are found at https://dapp.tools/


===== Dapp
Dapp is all you need to start developing for Ethereum. It creates new dapps, runs Solidity unit tests, debugs, deploys, launches testnets, and more.
Dapp is all you need to start developing for Ethereum. It creates new DApps, runs Solidity unit tests, debugs, deploys, launches testnets, and more.

===== Seth
Seth is a handy tool for slicing and dicing transactions, querying the blockchain, converting between data formats, performing remote calls, and other everyday tasks.
Expand Down Expand Up @@ -624,7 +624,7 @@ Documentation: https://docs.ethers.io

==== Emerald Platform

Emerald Platform provides libraries and UI components to build Dapps on top of Ethereum. Emerald JS and Emerald JS UI provides set of modules and React components to build JavaScript applications and websites; Emerald SVG Icons is a set of blockchain related icons. In addition to JavaScript libraries it has a Rust library to operate private keys and transaction signatures. All Emerald libraries and components are licensed under the Apache License, version 2.0.
Emerald Platform provides libraries and UI components to build DApps on top of Ethereum. Emerald JS and Emerald JS UI provides set of modules and React components to build JavaScript applications and websites; Emerald SVG Icons is a set of blockchain related icons. In addition to JavaScript libraries it has a Rust library to operate private keys and transaction signatures. All Emerald libraries and components are licensed under the Apache License, version 2.0.

Github: https://github.com/etcdevteam/emerald-platform

Expand Down
Loading

0 comments on commit bfa90d5

Please sign in to comment.