kasrus / Blockchain_Udacity_project1

Create own private blockchain

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Udacity_project1

What problem will you solve implementing this private Blockchain application? Your employer is trying to make a proof of concept on how a Blockchain application can be implemented in his company.

He is an astronomy fan and because of that he spends most of his free time searching stars in the sky, that's why he wants to create a test application that allows him and his friends to register stars, and track the ownership of each.

What steps are needed to implement your employers application? The application will create a Genesis Block when we run the application. The user will request the application to send a message to be signed using a Wallet and in this way verify the ownership over the wallet address. The message format will be:

<WALLET_ADRESS>:${new Date().getTime().toString().slice(0,-3)}:starRegistry;

Once the user has the message they can use a Wallet (Electrum or Bitcoin Core for example) to sign the message. The user will try to submit the Star object for that. The submission will consist of: wallet address, message, signature and the star object with the star information. The Start information will be formed in this format: "star": { "dec": "68° 52' 56.9", "ra": "16h 29m 1.0s", "story": "Testing the story 4" } The application will verify if the time elapsed from the request ownership (the time is contained in the message) and the time when you submit the star is less than 5 minutes. If everything is okay the star information will be stored in the block and added to the chain encoding the Star information. The application will allow us to retrieve the Star objects belong to an owner (wallet address). This information should be human readable so it shouldn't be encoded.

Some of the libraries or npm modules you will use are: "bitcoinjs-lib": "^4.0.3", "bitcoinjs-message": "^2.0.0", "body-parser": "^1.18.3", "crypto-js": "^3.1.9-1", "express": "^4.16.4", "hex2ascii": "0.0.3", "morgan": "^1.9.1" Remember if you think you need install any other library you will use npm install <npm_module_name>

About

Create own private blockchain


Languages

Language:JavaScript 100.0%