Skip to content

migbash-blockchain/altablock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java CI with Maven Heroku

Live Example -> https://altablock.herokuapp.com/wallet

This is an example of a DeFI Blockchain structure using the BlockMatrix Structure.

Project Snaphshots

image image image

Motivation

Solving the GDPR concerns within the blockchain industry to in reaction to the 2018 European law stating the key points in placing user privacy 1st and the so called "Right to be forgotten", if the user decides to opt out of their data (pseudonyms or referential) stored on the blockchain.

Project Structure

This project is built upon the Spring Boot (Java) Framework with a in-built UI panel for easier interface and visualization of the Blockchain (Blockmatrix) all in one package. I also throughtout the project switched to html5 templating engine (Pug/Jade), as well as opted for (Sass/Scss) for better design management.

Features

  • Send Transactions to other People on the network with a valid/existing public wallet address.
  • Ability to modify or delete your transactions information after it has been sent & validated by the network, (only if you are the owner of that particular transaction)
  • A fully working so called "Block Explorer", where you can view the state of the BlockMatrix, with statistics such as:
    • Number of Blocks on the Network (inside the Block-Matrix/Blockchain),
    • Number of "tampered"/"modified" blocks transaction information in the entire "BlockMatrix",
    • All transaction made on the BlockChain / BlockMatrix,
    • Blockmatrix Dimensions

Inconveniences

  • Currently the project holds x2 wallets on the network, with the ability to create inifite amount (until Java Memeroy Heap exceeds my Heroku Dyno hehe),
  • Upon interaction with the wallet, you can only send by default to another 'fixed' wallet on the network.
  • The "Access Another Wallet" & "View Wallet Keys" buttons currently do not do anything as I have not implmented an action for them.
  • The "Search capability" on the "/block_explorer" is not currently very well designed aesthetically and only will display the JSON ouptut in another tab (yikes)

Issues

  • I have implemented live block mining, but it is not enabled currently and thus every transaction will automatically mine a new block and place it in the blockcmatrix.
  • The ability to "register new nodes" on the network works and stores unique nodes onto the blockmatrix, but currently lacking the "/resolve" method gateway endpoint for keeping the blockmatrix up-to-date on other users machines.
  • Using Heroku on a free tier does not allow me to instanciate a higher "blockmatrix dimension" value (ie: 10000^2) because it causes a "Java Heap Leak Error"... Although it will work perfectly with higher dimensions on your personal machine depedning on your RAM capacity.
  • Heroku Free tier will reset the Dyno upon a certain period of inactivity, earasing thus all of the blockmatrix data and reboot its from scratch.

Getting Set-up

  1. Download / clone the repository to your local computer,
  2. Open this file in your IDE or text-editor,
  3. Run the Application.class app,
  4. you should have now your 'localhost:5000/wallet' running, should be identical to the live Heroku Version.

OR

You can download and run the Java.exe package file located here or in the /release_branch.

OR

Just visit the Live Heroku version here.

Resources

  • Blockchain Immutability research paper here,
  • Follow up Research Paper from unistgov here,
  • Referecnce Offical GitHub Repository on BlockMatrix from unistgov here,

Takeaway

All in all I continue to work on my personal research and discovering new technologies and the blockmatrix seems very exciting. It was a crazy 3 weeks projects (from research to MVP) and will be looking at ways to utilize this technology in the near future. Currently thinking to apply it HealthCare systems &/or Identity System or even use Smart Contracts with it.

Future Project Diagram

image