Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion client.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@ type ContractMeta struct {
ORG string `json:"org"`
}

type DynamicProof struct {
Proof []byte `json:"proof"`
height uint64 `json:"height"`
}

type Client struct {
meta *ContractMeta
consumer *Consumer
Expand Down Expand Up @@ -213,11 +218,23 @@ func (c *Client) getProof(response channel.Response) ([]byte, error) {
if err := proto.Unmarshal(t.TransactionEnvelope.Payload, pd); err != nil {
return nil, err
}

pt := &peer.Transaction{}
if err := proto.Unmarshal(pd.Data, pt); err != nil {
return nil, err
}
if c.config.Fabric.DynamicValidators {
block, err := l.QueryBlockByTxID(response.TransactionID)
if err != nil {
return nil, err
}
number := block.GetHeader().Number
dynamicProof := &DynamicProof{
Proof: pt.Actions[0].Payload,
height: number,
}
dynamicProofBytes, _ := json.Marshal(dynamicProof)
return dynamicProofBytes, nil
}

return pt.Actions[0].Payload, nil
}
Expand Down
28 changes: 15 additions & 13 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@ type Config struct {
Services []Service `mapstructure:"services" json:"services"`
}
type Fabric struct {
Name string `toml:"name" json:"name"`
Username string `toml:"username" json:"username"`
CCID string `toml:"ccid" json:"ccid"`
ChannelId string `mapstructure:"channel_id" toml:"channel_id" json:"channel_id"`
Org string `toml:"org" json:"org"`
ServerPort string `toml:"server_port" json:"server_port"`
TimeoutHeight int64 `mapstructure:"timeout_height" json:"timeout_height"`
Name string `toml:"name" json:"name"`
Username string `toml:"username" json:"username"`
CCID string `toml:"ccid" json:"ccid"`
ChannelId string `mapstructure:"channel_id" toml:"channel_id" json:"channel_id"`
Org string `toml:"org" json:"org"`
ServerPort string `toml:"server_port" json:"server_port"`
TimeoutHeight int64 `mapstructure:"timeout_height" json:"timeout_height"`
DynamicValidators bool `mapstructure:"dynamic_validators" json:"dynamic_validators"`
}

type Service struct {
Expand All @@ -34,12 +35,13 @@ type Service struct {
func DefaultConfig() *Config {
return &Config{
Fabric: Fabric{
Name: "fabric",
Username: "Admin",
CCID: "broker",
ChannelId: "mychannel",
Org: "org2",
TimeoutHeight: 30,
Name: "fabric",
Username: "Admin",
CCID: "broker",
ChannelId: "mychannel",
Org: "org2",
TimeoutHeight: 30,
DynamicValidators: false,
},
Services: nil,
}
Expand Down
45 changes: 45 additions & 0 deletions config/fabric-dynamic.validators
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"height": [1, 9, 22],
"pem": ["-----BEGIN CERTIFICATE-----
MIICKTCCAc + gAwIBAgIRAIBO31aZaSZoEYSy2AJuhJcwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzIuZXhhbXBsZS5jb20wHhcNMjAwMjA1MDgyMjAwWhcNMzAwMjAyMDgyMjAw
WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjEub3Jn
Mi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABG3jszFPTbGm
dAYg2BxmHMTDKfQReNw3p9ttMK130qF5lQo5zLBG8Sa3viOCLnvjjg6A / P + yKnwv
isI / jEVE8T2jTTBLMA4GA1UdDwEB / wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud
IwQkMCKAIMVL + daK7nMGr2 / AQIXTSPFkdd3UiPVDkWtkh5ujnalEMAoGCCqGSM49
BAMCA0gAMEUCIQDMYOQiYeMiQZTxlRkj / 3 / jjYvwwdCcX5AWuFmraiHkugIgFkX /
6 uiTSD0lz8P + wwlLf24cIABq2aZyi8q4gj0YfwA =
-- -- - END CERTIFICATE-- -- - ",
"-- -- - BEGIN CERTIFICATE-- -- -
MIICKTCCAc + gAwIBAgIRAIBO31aZaSZoEYSy2AJuhJcwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzIuZXhhbXBsZS5jb20wHhcNMjAwMjA1MDgyMjAwWhcNMzAwMjAyMDgyMjAw
WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjEub3Jn
Mi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABG3jszFPTbGm
dAYg2BxmHMTDKfQReNw3p9ttMK130qF5lQo5zLBG8Sa3viOCLnvjjg6A / P + yKnwv
isI / jEVE8T2jTTBLMA4GA1UdDwEB / wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud
IwQkMCKAIMVL + daK7nMGr2 / AQIXTSPFkdd3UiPVDkWtkh5ujnalEMAoGCCqGSM49
BAMCA0gAMEUCIQDMYOQiYeMiQZTxlRkj / 3 / jjYvwwdCcX5AWuFmraiHkugIgFkX /
6 uiTSD0lz8P + wwlLf24cIABq2aZyi8q4gj0YfwA =
-- -- - END CERTIFICATE-- -- - ",
"-- -- - BEGIN CERTIFICATE-- -- -
MIICKTCCAc + gAwIBAgIRAIBO31aZaSZoEYSy2AJuhJcwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzIuZXhhbXBsZS5jb20wHhcNMjAwMjA1MDgyMjAwWhcNMzAwMjAyMDgyMjAw
WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjEub3Jn
Mi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABG3jszFPTbGm
dAYg2BxmHMTDKfQReNw3p9ttMK130qF5lQo5zLBG8Sa3viOCLnvjjg6A / P + yKnwv
isI / jEVE8T2jTTBLMA4GA1UdDwEB / wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud
IwQkMCKAIMVL + daK7nMGr2 / AQIXTSPFkdd3UiPVDkWtkh5ujnalEMAoGCCqGSM49
BAMCA0gAMEUCIQDMYOQiYeMiQZTxlRkj / 3 / jjYvwwdCcX5AWuFmraiHkugIgFkX /
6 uiTSD0lz8P + wwlLf24cIABq2aZyi8q4gj0YfwA =
-- -- - END CERTIFICATE-- -- - "]
}
1 change: 1 addition & 0 deletions config/fabric.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ channel_id = "mychannel"
org = "org2"
timeout_height = 30
chain_id = "3"
dynamic_validators = false

[[services]]
id = "mychannel&transfer"
Expand Down