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

https://github.com/pappas999/kingsland-blockchain-advanced-project

Kingsland Blockchain Advanced Projects submission - Complete Proof Of Work Blockchain
https://github.com/pappas999/kingsland-blockchain-advanced-project

Last synced: 3 months ago
JSON representation

Kingsland Blockchain Advanced Projects submission - Complete Proof Of Work Blockchain

Awesome Lists containing this project

README

          

# Kingsland-Blockchain-Advanced-Project

This is a group submission for the Kingsland University MI5 Advanced Project module. The project consists of a nodeJS based fully working Proof Of Work Blockchain, Wallet, Faucet & Transaction Explorer. The blockchain was built by Harry Papacharissiou, with Roangelo Lacamento contributing to the sending transactions part of the blockchain & building the Wallet & Faucet, & Eric Bui building the Transaction Explorer.

All REST endpoints were built according to specs defined in the project definition. For the purposes of testing & time restraints, it is not a fully P2P network, and currently uses REST endpoints for peers to connect to eachother.

Node Instructions


Checkout code to a local repository, ensure you have all dependencies installed by running npm install

Then to run the Node run the following command from the Node directory:


node node.js host port


where host is the host, eg localhost, and port is the port number, eg 7777


With no extra parameters, the node will start at localhost:5555 by default


All API endpoints are as per the definition in the 'REST API for Practical Project' document

Wallet Instructions

The Wallet App for this project is a purely client-side web application. All the computations and and logic happen in the browser.
The wallet app is a Hierarchical Deterministic(HD) wallet. The heart of the wallet app can be found [here](https://github.com/pappas999/Kingsland-Blockchain-Advanced-Project/blob/master/Wallet/libs/walletApp.js).

Wallet Operations



1. To open the wallet application, just open the `index.html` file inside the `Wallet` directory using your browser. For best experience, Google Chrome is recommended.
2. On the app, you could create a new wallet by clicking the Create Wallet. You will also be asked by a password to create a new wallet. Once you submit the form, the app wiill create a new wallet and will give you your wallet mnemonic. Please save this mnemonic!
3. There is also an option to Open an existing wallet, just enter your password and mnemonic and submit.
4. Just in case you forgot your mnemonic, there is also an option to view your existing mnemonic.
5. There is also a tab to view your wallet addresses and balances. You will have 5 addresses and balances.
6. You could also send transactions (create, sign and send to blockchain node)
7. And lastly, you could logout of your wallet and your wallet instance will be cleared on the browser.

Faucet Instructions


The Faucet application is an Express/Node JS web app. This faucet will give your wallet some coins to use.

Setup


In the Faucet directory, run npm install to install the dependencies.

Running the Faucet App

1. Once the dependencies are installed the following command:
```
npm start
```

2. Go to your browser, and access `http://localhost:3000`.

3. Fill up the form (your address, blockchain node, and captcha) and click submit. The faucet will give you a random number of coins between 0.5 coin (500000 microcoins) to 1 coin (1000000 microcoins)

4. You can only request from the faucet app once every one hour.