1

How do I show the immutable nature of a record in ledger which is in Hyperledger composer. A chain of hashes? How can try to change a transaction in historian and check the immutability attribute of the project.If I cant , is there any other method where I can show prove that blockchain is append only.

2 Answers2

0

You can't change a transaction, they are append-only in Hyperledger Fabric.

If you did find a way to change it, you've found a way to compromise Fabric as a blockchain (which would be a good finding!). From a research perspective, to prove that you can't you could use contra-positives.

ChrisMcQueen
  • 100
  • 6
  • Im aware of append only feature of hyperledger . I was asking how do I know it and show it , which is what I wrote in title. – Sai Prannav Krishna Apr 11 '18 at 09:14
  • Okay... Know: You can read Historian to see all valid transactions, you can prove that every transaction you add gets added to there unless they are invalid transactions. If any are missing, you know the data is gone. Show: As I mentioned, contra-positives. You try methods to delete/edit an existing transaction on the ledger, none of these should be possible without creating another transaction explicitly saying you are getting rid of an old one. These are simple guarantees given to you by any blockchain, and are why they are designed way they are (merkle trees with chained blocks) – ChrisMcQueen Apr 11 '18 at 09:20
  • see https://stackoverflow.com/questions/48611238/immutability-in-hyperledger-fabric - you could simply set up endorsement (at a Fabric level) to detect the 'attempted' tampering of historian record inside the block. – Paul O'Mahony Apr 11 '18 at 09:47
0

One way that I have seen immutable nature of blockchain shown on Hyperledger Composer is that after you develop a .bna with Composer and then when you deploy a custom .bna to blockchain starter plan, you can see chaincode logs. These logs will persists as long as your blockchain service is running. This way, you will always have a precise history of what chaincode has executed, and can see any tampering of the blockchain network.

The way to check the logs is that after you launch your blockchain service, click on 'Channels' tab on the left side of the screen, then click on 'defaultchannel' or whatever channel you want to see logs for. Then for each block number, you can see exactly what chaincode is executed, what was the chaincodeID, aand what was the output. This looks something like this:

chaincode logs

Horea Porutiu
  • 176
  • 1
  • 6