hyperledger-archives / fabric

THIS IS A READ-ONLY historic repository. Current development is at https://gerrit.hyperledger.org/r/#/admin/projects/fabric . pull requests not accepted
https://gerrit.hyperledger.org/
Apache License 2.0
1.17k stars 1.01k forks source link

Hyperledger Fabric Consensus plugin PBFT error, Data not stored and Syn #2416

Open khut-pidor opened 7 years ago

khut-pidor commented 7 years ago

I have formed a network of hyperledger fabric with 4 validating peers along with security: Disable. I using PBFT consensus to syn block between peers. When I try to Deploy, and invoke transaction into the root node of the network with chaincode(chaincode_example02) running on, it seem to work ,but give few logs. After Deploy and Invoke success, I try to Query the Data, it show { "jsonrpc": "2.0", "error": { "code": -32003, "message": "Query failure", "data": "Error when querying chaincode: Error:Failed to launch chaincode spec(Could not get deployment transaction for 1b3028e45a9a67604219e2aaeb1306855e61e9d0571875d4f3d207b68f50d20b77090d0e1f0418b0e8d6b8a3d58e804316a471f2cad26da5c878a9d7590bdc4c - LedgerError - ResourceNotFound: ledger: resource not found)" }, I think Data is not stored. I try to check the height of each peer. It keep the same number as it used to be. I install and using fabric across 4 different VMware Machine. I'm not using any Vagrant or Docker. All peers Log: VP0: 19:12:26.982 [consensus/pbft] recvViewChange -> INFO 3b6 Replica 0 received view-change from replica 2, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:26.982 [consensus/pbft] recvViewChange -> WARN 3b7 Replica 0 found view-change message for old view 19:12:26.983 [consensus/pbft] recvViewChange -> INFO 3b8 Replica 0 received view-change from replica 3, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:26.983 [consensus/pbft] recvViewChange -> WARN 3b9 Replica 0 found view-change message for old view 19:12:28.857 [consensus/pbft] recvViewChange -> INFO 3ba Replica 0 received view-change from replica 1, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:28.857 [consensus/pbft] recvViewChange -> WARN 3bb Replica 0 found view-change message for old view 19:12:28.983 [consensus/pbft] sendViewChange -> INFO 3bc Replica 0 sending view-change, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:28.983 [consensus/pbft] recvViewChange -> INFO 3bd Replica 0 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:28.983 [consensus/pbft] recvViewChange -> WARN 3be Replica 0 already has a view change message for view 2 from replica 0 19:12:28.983 [consensus/pbft] recvViewChange -> INFO 3bf Replica 0 received view-change from replica 2, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:28.983 [consensus/pbft] recvViewChange -> WARN 3c0 Replica 0 found view-change message for old view 19:12:28.983 [consensus/pbft] recvViewChange -> INFO 3c1 Replica 0 received view-change from replica 3, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:28.983 [consensus/pbft] recvViewChange -> WARN 3c2 Replica 0 found view-change message for old view 19:12:30.859 [consensus/pbft] recvViewChange -> INFO 3c3 Replica 0 received view-change from replica 1, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:30.859 [consensus/pbft] recvViewChange -> WARN 3c4 Replica 0 found view-change message for old view 19:12:30.984 [consensus/pbft] sendViewChange -> INFO 3c5 Replica 0 sending view-change, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:30.984 [consensus/pbft] recvViewChange -> INFO 3c6 Replica 0 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:30.984 [consensus/pbft] recvViewChange -> WARN 3c7 Replica 0 already has a view change message for view 2 from replica 0 19:12:30.984 [consensus/pbft] recvViewChange -> INFO 3c8 Replica 0 received view-change from replica 3, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:30.984 [consensus/pbft] recvViewChange -> WARN 3c9 Replica 0 found view-change message for old view 19:12:30.985 [consensus/pbft] recvViewChange -> INFO 3ca Replica 0 received view-change from replica 2, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:30.985 [consensus/pbft] recvViewChange -> WARN 3cb Replica 0 found view-change message for old view VP1: 19:12:26.856 [consensus/pbft] sendViewChange -> INFO 211 Replica 1 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:26.857 [consensus/pbft] recvViewChange -> INFO 212 Replica 1 received view-change from replica 1, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:26.857 [consensus/pbft] recvViewChange -> WARN 213 Replica 1 already has a view change message for view 1 from replica 1 19:12:26.985 [consensus/pbft] recvViewChange -> INFO 214 Replica 1 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:26.985 [consensus/pbft] recvViewChange -> WARN 215 Replica 1 already has a view change message for view 2 from replica 0 19:12:28.858 [consensus/pbft] sendViewChange -> INFO 216 Replica 1 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:28.859 [consensus/pbft] recvViewChange -> INFO 217 Replica 1 received view-change from replica 1, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:28.859 [consensus/pbft] recvViewChange -> WARN 218 Replica 1 already has a view change message for view 1 from replica 1 19:12:28.986 [consensus/pbft] recvViewChange -> INFO 219 Replica 1 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:28.986 [consensus/pbft] recvViewChange -> WARN 21a Replica 1 already has a view change message for view 2 from replica 0 19:12:30.860 [consensus/pbft] sendViewChange -> INFO 21b Replica 1 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:30.861 [consensus/pbft] recvViewChange -> INFO 21c Replica 1 received view-change from replica 1, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:30.861 [consensus/pbft] recvViewChange -> WARN 21d Replica 1 already has a view change message for view 1 from replica 1 19:12:30.987 [consensus/pbft] recvViewChange -> INFO 21e Replica 1 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:30.987 [consensus/pbft] recvViewChange -> WARN 21f Replica 1 already has a view change message for view 2 from replica 0 19:12:32.863 [consensus/pbft] sendViewChange -> INFO 220 Replica 1 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:32.863 [consensus/pbft] recvViewChange -> INFO 221 Replica 1 received view-change from replica 1, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:32.863 [consensus/pbft] recvViewChange -> WARN 222 Replica 1 already has a view change message for view 1 from replica 1 19:12:32.989 [consensus/pbft] recvViewChange -> INFO 223 Replica 1 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:32.989 [consensus/pbft] recvViewChange -> WARN 224 Replica 1 already has a view change message for view 2 from replica 0 19:12:34.864 [consensus/pbft] sendViewChange -> INFO 225 Replica 1 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 VP2: 19:12:19.036 [consensus/pbft] recvViewChange -> WARN 201 Replica 2 already has a view change message for view 2 from replica 0 19:12:21.036 [consensus/pbft] sendViewChange -> INFO 202 Replica 2 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:21.037 [consensus/pbft] recvViewChange -> INFO 203 Replica 2 received view-change from replica 2, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:21.037 [consensus/pbft] recvViewChange -> WARN 204 Replica 2 already has a view change message for view 1 from replica 2 19:12:21.038 [consensus/pbft] recvViewChange -> INFO 205 Replica 2 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:21.038 [consensus/pbft] recvViewChange -> WARN 206 Replica 2 already has a view change message for view 2 from replica 0 19:12:23.037 [consensus/pbft] sendViewChange -> INFO 207 Replica 2 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:23.038 [consensus/pbft] recvViewChange -> INFO 208 Replica 2 received view-change from replica 2, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:23.038 [consensus/pbft] recvViewChange -> WARN 209 Replica 2 already has a view change message for view 1 from replica 2 19:12:23.038 [consensus/pbft] recvViewChange -> INFO 20a Replica 2 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:23.038 [consensus/pbft] recvViewChange -> WARN 20b Replica 2 already has a view change message for view 2 from replica 0 19:12:25.039 [consensus/pbft] sendViewChange -> INFO 20c Replica 2 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:25.039 [consensus/pbft] recvViewChange -> INFO 20d Replica 2 received view-change from replica 2, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:12:25.039 [consensus/pbft] recvViewChange -> WARN 20e Replica 2 already has a view change message for view 1 from replica 2 19:12:25.040 [consensus/pbft] recvViewChange -> INFO 20f Replica 2 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:12:25.040 [consensus/pbft] recvViewChange -> WARN 210 Replica 2 already has a view change message for view 2 from replica 0 19:12:27.039 [consensus/pbft] sendViewChange -> INFO 211 Replica 2 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 VP3 19:11:51.012 [consensus/pbft] sendViewChange -> INFO 1b6 Replica 3 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:11:51.013 [consensus/pbft] recvViewChange -> INFO 1b7 Replica 3 received view-change from replica 3, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:11:51.013 [consensus/pbft] recvViewChange -> WARN 1b8 Replica 3 already has a view change message for view 1 from replica 3 19:11:51.013 [consensus/pbft] recvViewChange -> INFO 1b9 Replica 3 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:11:51.013 [consensus/pbft] recvViewChange -> WARN 1ba Replica 3 already has a view change message for view 2 from replica 0 19:11:53.014 [consensus/pbft] sendViewChange -> INFO 1bb Replica 3 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:11:53.014 [consensus/pbft] recvViewChange -> INFO 1bc Replica 3 received view-change from replica 3, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:11:53.014 [consensus/pbft] recvViewChange -> WARN 1bd Replica 3 already has a view change message for view 1 from replica 3 19:11:53.014 [consensus/pbft] recvViewChange -> INFO 1be Replica 3 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:11:53.015 [consensus/pbft] recvViewChange -> WARN 1bf Replica 3 already has a view change message for view 2 from replica 0 19:11:55.015 [consensus/pbft] sendViewChange -> INFO 1c0 Replica 3 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:11:55.016 [consensus/pbft] recvViewChange -> INFO 1c1 Replica 3 received view-change from replica 3, v:1, h:0, |C|:1, |P|:0, |Q|:2 19:11:55.016 [consensus/pbft] recvViewChange -> WARN 1c2 Replica 3 already has a view change message for view 1 from replica 3 19:11:55.016 [consensus/pbft] recvViewChange -> INFO 1c3 Replica 3 received view-change from replica 0, v:2, h:0, |C|:1, |P|:1, |Q|:2 19:11:55.016 [consensus/pbft] recvViewChange -> WARN 1c4 Replica 3 already has a view change message for view 2 from replica 0 19:11:57.016 [consensus/pbft] sendViewChange -> INFO 1c5 Replica 3 sending view-change, v:1, h:0, |C|:1, |P|:0, |Q|:2 Consensus.pbft.config.yaml

Operational mode: currently only batch ( this value is case-insensitive)

mode: batch

Maximum number of validators/replicas we expect in the network

Keep the "N" in quotes, or it will be interpreted as "false".

"N": 4

Number of byzantine nodes we will tolerate

f: 1

Checkpoint period is the maximum number of pbft requests that must be

re-processed in a view change. A smaller checkpoint period will decrease

the amount of time required to recover from an error, but will decrease

overall throughput in normal case operation.

K: 10

Affects the receive log size which is K * logmultiplier

The primary will only send sequence numbers which fall within K * logmultiplier/2 of

its high watermark, so this cannot be set to less than 2

For high volume/high latency environments, a higher log size may increase throughput

logmultiplier: 4

How many requests should the primary send per pre-prepare when in "batch" mode

batchsize: 100

Whether the replica should act as a byzantine one; useful for debugging on testnets

byzantine: false

After how many checkpoint periods the primary gets cycled automatically. Set to 0 to disable.

viewchangeperiod: 0

Timeouts

timeout:

# Send a pre-prepare if there are pending requests, batchsize isn't reached yet,
# and this much time has elapsed since the current batch was formed
batch: 1s

# How long may a request take between reception and execution, must be greater than the batch timeout
request: 2s

# How long may a view change take
viewchange: 2s

# How long to wait for a view change quorum before resending (the same) view change
resendviewchange: 2s

# Interval to send "keep-alive" null requests.  Set to 0 to disable. If enabled, must be greater than request timeout
nullrequest: 0s

# How long may a message broadcast take.
broadcast: 1s

Core.yaml

Validator defines whether this peer is a validating peer or not, and if # it is enabled, what consensus plugin to load validator: enabled: true

consensus:
    # Consensus plugin to use. The value is the name of the plugin, e.g. pbft, noops ( this value is case-insensitive)
    # if the given value is not recognized, we will default to noops
    plugin: pbft

    # total number of consensus messages which will be buffered per connection before delivery is rejected
    buffersize: 1000

events:
    # The address that the Event service will be enabled on the validator
    address: 0.0.0.0:7053

    # total number of events that could be buffered without blocking the
    # validator sends
    buffersize: 100

    # milliseconds timeout for producer to send an event.
    # if < 0, if buffer full, unblocks immediately and not send
    # if 0, if buffer full, will block and guarantee the event will be sent out
    # if > 0, if buffer full, blocks till timeout
    timeout: 10