Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bittricky/simplechain

Blockchain Example
https://github.com/bittricky/simplechain

crypto-js javascript leveldb

Last synced: 4 days ago
JSON representation

Blockchain Example

Awesome Lists containing this project

README

        

# Simple Chain

Example of how to implement a blockchain

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

### Prerequisites

Installing Node and NPM is pretty straightforward using the installer package available from the [Node.js](https://nodejs.org/en/).

### Install

To install the project dependencies run the following command

```
$ npm install
```

## Testing

Testing is very important

To test this code:
1: Open a command prompt or terminal shell after installing node.js.
2: Enter a node session, also known as a REPL (Read-Evaluate-Print-Loop).
```
node
```
3: Copy and paste your code into your node session
4: Instantiate blockchain with blockchain variable
```
let blockchain = new Blockchain();
```
5: Generate 10 blocks using a for loop
```
for (var i = 0; i <= 10; i++) {
blockchain.addBlock(new Block("test data "+i));
}
```
6: Validate blockchain
```
blockchain.validateChain();
```
7: Induce errors by changing block data
```
let inducedErrorBlocks = [2,4,7];
for (var i = 0; i < inducedErrorBlocks.length; i++) {
blockchain.chain[inducedErrorBlocks[i]].data='induced chain error';
}
```
8: Validate blockchain. The chain should now fail with blocks 2,4, and 7.
```
blockchain.validateChain();
```

#### Credit

- [Udacity](https://www.udacity.com/course/blockchain-developer-nanodegree--nd1309)