这是indexloc提供的服务,不要输入任何密码
Skip to content
This repository was archived by the owner on Mar 30, 2018. It is now read-only.
This repository was archived by the owner on Mar 30, 2018. It is now read-only.

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

@khut-pidor

Description

@khut-pidor

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions