Private Blockchain Application
This is a Node JS application that simulates a basic blockchain protocol.
Run the application
Clone this repo to your local computer and proceed with the following steps.
Install dependencies
npm install
Run Jest tests
npm test
Start the application
npm start
Development
If you want to make changes to the code, I recommend following Test Driven Development and start up Jest in watch mode as follows:
npm run test-watch
Now start to make changes to the tests and the application code and watch the tests run!
Testing using POSTMAN
Below are the results of testing using POSTMAN
- Run your application using the command
npm run start
You should see in your terminal a message indicating that the server is listening in port 8000:
Server Listening for port: 8000
- To make sure your application is working fine and it creates the Genesis Block you can use POSTMAN to request the Genesis block:
- Make your first request of ownership sending your wallet address:
- Sign the message with your Wallet:
- Submit your Star
- Retrieve Stars owned by me
VSCode Debugging the app or with Jest
If you want to start the debugger and attach to the running application instance or running Jest tests, then you can use VSCode launch configurations file to do so launch.json
. For this project, I am using the following configurations:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/start.js"
},
{
"type": "node",
"request": "launch",
"name": "Jest Tests",
"internalConsoleOptions": "openOnSessionStart",
"program": "${workspaceFolder}/node_modules/jest/bin/jest"
}
]
}
Issue Reporting
If you experience with bugs or need further improvement, please create a new issue under Issues.
Contributing to this private blockchain!
Pull requests are very welcome. Before submitting a pull request, please make sure that your changes are well tested. Pull requests without tests will not be accepted. In this project we currently use Jest and Supertest.
Authors
This Privae Blockchain: Star Ownership Tracking application was developed as part of the Blockchain Nanodegree with Udacity and Darren Jensen.
License
This Privae Blockchain: Star Ownership Tracking application is released under AGPL
Disclaimer
This application is part of a project assignment and is most definitely not suitable for Production use! :)