Skip to content

Commit

Permalink
Updating README.md.
Browse files Browse the repository at this point in the history
  • Loading branch information
Oliver Beddows committed Sep 30, 2015
1 parent cf0ff3b commit ba9bafa
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions README.md
Expand Up @@ -31,15 +31,15 @@ The signing of blocks by a master node against a given Dapp is restricted by the

Side chain consensus is maintained among the 101 master nodes using the same Delegated Proof-of-Stake (DPOS) method used to secure the Crypti blockchain. This allows individual master nodes to collect fees from each transaction as reward for securing the Dapp's side chain.

Users can move tokens (XCR) in and out of a dapp by depositing it into the dapp and or withdrawing XCR from the dapp.
Users can move tokens (XCR or BTC) in and out of a dapp by making deposits or withdrawals to and from each dapp.

Deposits and withdrawals are special Crypti based transactions that move your XCR funds from the main Crypti blockchain to the sidechain, thus allowing its use within the dapp.
Deposits and withdrawals are special Crypti based transactions that move your XCR funds from the main Crypti maincain to the sidechain, thus allowing its use within the dapp.

Some example use cases:

* **Messaging Dapp** - Users send messages and pay fees for each message to dapp owner.
* **Decentralized Exchange** - Users deposit funds into a decentralized exchange dapp and pays order fees to dapp owner.
* **Decentralized Torrent Tracker** - Users posts new torrents files to dapp and gets XCR as "thanks" for sharing.
* **Messaging Dapp** - Users send messages via a messaging dapp and pay transaction fees for each message sent to the dapp owner.
* **Decentralized Exchange** - Users deposit funds into a decentralized exchange dapp and pay order fees to the dapp owner.
* **Decentralized Torrent Tracker** - Users post new torrents files to a torrent tracking dapp and receive XCR as "thanks" for sharing.

### Development

Expand All @@ -48,7 +48,7 @@ Crypti Dapps are written using existing web technologies:
* Backend: **NodeJS/JavasScript**
* Frontend: **CSS3/HTML5/JavasScript**

Therfore, developers already familiar with these technologies, will quickly find their comfort zone, and and start building decentralized applications in no time at all.
Therfore, developers already familiar with these technologies will quickly find their comfort zone, and and start building decentralized applications in no time at all.

Using our Command Line Interface *crypti-cli*. Developers can easily generate a new genesis block for their dapp's sidechain, clone the **Crypti DApp Toolkit** as a base project structure and create new contracts.

Expand All @@ -58,33 +58,33 @@ For more information on how to proceed with developing your first Crypti based d

Crypti Dapps execute within an sandboxed NodeJS environment. Where 90% of all system calls are handled by [Seccomp](https://en.wikipedia.org/wiki/Seccomp).

As a result of this, you can only run master nodes in production on Linux machines. Max OS X and Windows machines are restricted to the development of dapps only.
As a result of this, you can only run master nodes in production on Linux machines. Mac OS X and Windows machines are restricted to the development of dapps only.

When Crypti launches a new Dapp, it launches a new NodeJS process, secured by Seccomp which communicates with Crypti via pipes.

**NOTE:** Taking into consideration pipes often have their limitations. There is no limit on the message size.
**NOTE:** Taking into consideration pipes are know to have their limitations. There is in fact no limit on the message size.

### Forging

It is the responsibiliy of forgers to generate blocks for each sidechain. They are approved by the owner of a dapp to sign new blocks, and as a reward they receive a portion of the transaction fees.
It is the responsibility of forgers to generate blocks for each sidechain. They are approved by the owner of a dapp to sign new blocks, and each receive a portion of the transaction fees as a reward for securing the sidechain.

Each genesis block contains a basic list of forgers, but this can be altered at any given point.

All operations affecting the genesis block are done using the provided command line tool: **crypti-cli**.

### Deposits/Withdrawals

When you make deposit or withdrawal to/from a dapp, a special type of transaction is used.
When making deposits or withdrawals from a dapp. A special type of transaction is used.

In the case of a deposit. This special transaction is sent from the mainchain which is then received by the dapp.
In the case of a deposit, this special transaction is broadcast from the mainchain to the dapp's side chain. Wherein a new transaction, along with a reference to the mainchain's transaction id, is saved to dapp's sidechain, preventing double spending attacks.

Creating another new transaction that is saved along with a new transaction id in the Dapp's sidechain. Where the funds are then allocated to the dapp user's account.

All funds deposited are stored within the Dapp owner's account. So, funds don't move from the mainchain, but instead stored wihtin the dapp owner's account.
All funds deposited are stored within the Dapp owner's account, and therefore don't actually move from the dapp owner's mainchain account.

To prevent theft of funds, there is the option of using a multi-signature account. This is highly recommended for open sourced dapps, where one or more participants are required to a sign any withdrawal requests.

When making a withdrawal from a dapp. Another special type of transaction is sent to the dapp. Once this transaction has been applied to a block, the dapp master nodes will initiate the withdrawal, which is sent to the mainchain. Where a copy of the transaction id from the sidechain is saved into the mainchain to prevent double spending attacks.
When making a withdrawal from a dapp. Another special type of transaction is broadcast from the mainchain to the dapp's sidechain.

Once this transaction has been applied to a block, the dapp master nodes will initiate the withdrawal, which is then broadcast to the mainchain. Wherein a copy of the transaction id from the sidechain is saved into the mainchain to prevent double spending attacks.

## API

Expand All @@ -96,6 +96,6 @@ The Crypti Foundation is ready and waiting to answer your questions.

So feel free to join our slack group at: [slack.crypti.me](slack.crypti.me).

Thank you for making Crypti your decentralized applications platform of choice.
Thank you for making Crypti your decentralized application platform of choice.

**The Crypti Foundation**

0 comments on commit ba9bafa

Please sign in to comment.