Skip to content

bendelv/Inge-B3_LSDS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 

Repository files navigation

Info8002_LSDS Project

1. Notes

  • merkleTree is build as follow, we lsit all transaction and sort them according to the alphabetical order of the key, and we break the ties be sortinc according to the timestamp. Then we build the leaf on in a buttom up way we build the tree.

  • To mine the tree we first mine the leafs, then update the hashes. After that we mine every node in the tree and finally we mine the root of the tree.

  • To search presence in the tree, we use a array of prefixes attached to each node. The first element of the array indicate the lowest value present in the tree. The second element indicates the largest value in the tree.

  • The blockchain is dumped to json format in order to be send through messages. The is also a method of the chain in order to build the object from the json string.

2. Links

3. Remarque

difficulty implementation is based on bitcoin paper Chapter 4 (proof of work). We define the difficulty as being the number of 0 as the prefix of the hash value. Using an incrementing nonce we can thus implement a proof a work. As mentioned in the reference paper the amount of work is exponential w.r.t the number of 0s.

4. TODO

Unit test

  • implement unit tests. (ALL)
  • run test with 51% of the network.
  • try adding element and check validity
  • try altering one transaction
  • try altering hashes
  • try altering multiple transaction
  • dumb and load different level of the blockchain

User/high level application

  • Implement API. (Alex)
  • Joint all features (Ben)

Blockchain

  • implement single blockchain.
  • implement set of transaction as merkel tree. (Pierre)
  • Add timestamp to each transaction to know which key is the oldest.
  • Table containing key values (but how to protect it from hacker)?
  • implement search in the tree by adding min and max prefix to merkleTreeNodes.
  • Verify existence travel through min max prefixes.
  • create one abstract class which will be used in treenoed/leaf and block (Is this really necessary)
  • look for dumping in json.
  • change compute hash to use json version, reduce number of important variables in json dumping for hash nor for serialization
  • solve issuie with first prefix.
  • implement serialization

Consensus

Broadcast

  • implement broadcast system. (Pierre)

Network

  • add new address to bootstrap server.
  • broadcast new address.
  • broadcast JSon objects trough broadcast system. (in particular Blockchain, new key/value, list of connected peer)
  • get local from remote version of blockchain and transmit to Blockchain level

Low level features

  • Perfect link
  • fail silent detector

Ceck For _leaf in the commits

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published