| 111 | } |
| 112 | |
| 113 | func verifyVrf(pk keypair.PublicKey, blkNum uint32, prevVrf, newVrf, proof []byte) error { |
| 114 | data, err := json.Marshal(&vrfData{ |
| 115 | BlockNum: blkNum, |
| 116 | PrevVrf: prevVrf, |
| 117 | }) |
| 118 | if err != nil { |
| 119 | return fmt.Errorf("verifyVrf failed to marshal vrfData: %s", err) |
| 120 | } |
| 121 | |
| 122 | result, err := vrf.Verify(pk, data, newVrf, proof) |
| 123 | if err != nil { |
| 124 | return fmt.Errorf("verifyVrf failed: %s", err) |
| 125 | } |
| 126 | if !result { |
| 127 | return fmt.Errorf("verifyVrf failed") |
| 128 | } |
| 129 | return nil |
| 130 | } |
| 131 | |
| 132 | func GetVbftConfigInfo(memdb *overlaydb.MemDB) (*config.VBFTConfig, error) { |
| 133 | //get governance view |