Skip to content

Latest commit

 

History

History
10 lines (5 loc) · 2.24 KB

retrospective.md

File metadata and controls

10 lines (5 loc) · 2.24 KB

We implemented the process by which groups of transactions are packaged up in order to be incorporated into the blockchain. The merkle tree is formed by taking a group of transactions hashing them individually, concatenating the results and hashing again, repeating this procedure to produce a single 'root' hash. Necessarily this requires a number of transactions to be a power of 2, and in this case we used 8 for demonstration. This used python's sha256 algorithm and because this could not process dictionaries directly, we implemented the transactions as lists of lists, which is less ideal. This could easily be adjusted to extract the dictionary values in string format in order to operate on them. In future the transactions would be incorporated into the mining class so that the transactions could be added to the blockchain.

We also began work on the process of generating key pairs in order to authenticate transaction requests, and the public key would form the address system by which payments to and from could be made. However, the process of generating individual addresses for each transaction from the public key and the hashing of the public key to produce the standard addrss format as used in the official bitcoin method was not implemented. Since this is mainly for compression reasons, it would not have affected the running on a small network as would be demonstrated here.

In terms of the organisation of the project, Nisal was working on implementing the tracker, Allwyn on the networking, Yevheni on mining of the blocks and Josh on the transactions. This meant that Allwyn, Yevheni and Nisal were working closely together with Josh being more independent. This was a slight problem as the work was unevenly distributed since the transactions had to be built on top and this was difficult without the rest of the framework in place. Also, the different components were built separately and it was difficult to incorporate them at the end. In future it would be easier to work more closely for the beginning so that merging would have been less troublesome.

The next time we would plan out our collaborations in a more organized manner so as to promote independent thinking/working while working closely and in tandem towards the objective of a give task.