Hyperledger Fabri c - Как мы можем поймать пира, который пытается подделать данные? - PullRequest
0 голосов
/ 07 февраля 2020

Я запустил пример Test Network из Hyperledger Fabri c Sample, и я обновляю конфигурацию для использования CouchDB.

Моя цель - найти способ поймать однорангового пользователя, который пытается подделать данные.

Я подделал CAR4 из пользовательского интерфейса CouchDB (peer0 из Org1):

{
  "_id": "CAR4",
  "_rev": "13-4da33a0904fed5919e0bf094a93f2fd9",
  "colour": "black",
  "make": "Tesla",
  "model": "S",
  "owner": "some illegal update",
  "~version": "CgMBDwA="
}

И я выполнил следующую команду (peer0 из Org2):

peer chaincode ... '{"function":"changeCarOwner","Args":["CAR4","some valid update"]}'

Из peer0.org2 я получил:

2020-02-07 12:39:52.026 UTC [endorser] callChaincode -> INFO 0b6 finished chaincode: fabcar duration: 1ms channel=mychannel txID=b17c59e4
2020-02-07 12:39:52.026 UTC [comm.grpc.server] 1 -> INFO 0b7 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.25.0.1:52132 grpc.code=OK grpc.call_duration=2.25757ms
2020-02-07 12:39:54.039 UTC [gossip.privdata] StoreBlock -> INFO 0b8 [mychannel] Received block [16] from buffer
2020-02-07 12:39:54.042 UTC [committer.txvalidator] Validate -> INFO 0b9 [mychannel] Validated block [16] in 2ms
2020-02-07 12:39:54.042 UTC [gossip.privdata] prepareBlockPvtdata -> INFO 0ba Successfully fetched all eligible collection private write sets for block [16] channel=mychannel
2020-02-07 12:39:54.057 UTC [statecouchdb] commitUpdates -> WARN 0bb CouchDB batch document update encountered an problem. Reason:Document update conflict., Retrying update for document ID:CAR4
2020-02-07 12:39:54.071 UTC [kvledger] CommitLegacy -> INFO 0bc [mychannel] Committed block [16] with 1 transaction(s) in 28ms (state_validation=0ms block_and_pvtdata_commit=8ms state_commit=17ms) commitHash=[a8fe8cc2e91f74e315b6c0aa4343aa41ee73bc891552658b11b91b08c5f5df2c]

Мы можем видеть, что неправильно с CAR4:

2020-02-07 12:39:54.057 UTC [statecouchdb] commitUpdates -> WARN 0bb CouchDB batch document update encountered an problem. Reason:Document update conflict., Retrying update for document ID:CAR4

Конечно, после действительной транзакции документ CAR4 от peer0.org1 является «откатом» и получает новое значение на обоих peer0 от каждого org1 / 2

Но ... Есть ли способ поймать сверстника, который пытается подделать данные?

...