diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 18bc3522e..81264bf6a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -70,7 +70,6 @@ jobs: pingpong, stoprestart, twonets, - weaver-relay, chaincode-events ] diff --git a/Makefile b/Makefile index 94a7740c5..8f3578d11 100755 --- a/Makefile +++ b/Makefile @@ -54,7 +54,7 @@ unit-tests-race: testing-docker-images cd integration/nwo/; export FAB_BINS=$(FAB_BINS); go test -race -cover ./... .PHONY: docker-images -docker-images: fabric-docker-images weaver-docker-images orion-server-images monitoring-docker-images testing-docker-images +docker-images: fabric-docker-images orion-server-images monitoring-docker-images testing-docker-images .PHONY: fabric-docker-images fabric-docker-images: @@ -63,13 +63,6 @@ fabric-docker-images: docker pull hyperledger/fabric-ccenv:$(FABRIC_TWO_DIGIT_VERSION) docker image tag hyperledger/fabric-ccenv:$(FABRIC_TWO_DIGIT_VERSION) hyperledger/fabric-ccenv:latest -.PHONY: weaver-docker-images -weaver-docker-images: - docker pull ghcr.io/hyperledger-labs/weaver-fabric-driver:1.2.1 - docker image tag ghcr.io/hyperledger-labs/weaver-fabric-driver:1.2.1 hyperledger-labs/weaver-fabric-driver:latest - docker pull ghcr.io/hyperledger-labs/weaver-relay-server:1.2.1 - docker image tag ghcr.io/hyperledger-labs/weaver-relay-server:1.2.1 hyperledger-labs/weaver-relay-server:latest - .PHONY: monitoring-docker-images monitoring-docker-images: docker pull ghcr.io/hyperledger-labs/explorer-db:latest @@ -127,10 +120,6 @@ integration-tests-atsafsc: integration-tests-twonets: cd ./integration/fabric/twonets; export FAB_BINS=$(FAB_BINS); ginkgo $(GINKGO_TEST_OPTS) . -.PHONY: integration-tests-weaver-relay -integration-tests-weaver-relay: - cd ./integration/fabric/weaver/relay; export FAB_BINS=$(FAB_BINS); ginkgo $(GINKGO_TEST_OPTS) . - .PHONY: integration-tests-fabric-stoprestart integration-tests-fabric-stoprestart: cd ./integration/fabric/stoprestart; export FAB_BINS=$(FAB_BINS); ginkgo $(GINKGO_TEST_OPTS) . @@ -151,7 +140,6 @@ integration-tests-orioncars: tidy: @go mod tidy cd tools; go mod tidy - cd integration/fabric/weaver/relay/chaincode; go mod tidy cd platform/fabric/services/state/cc/query; go mod tidy .PHONY: clean @@ -166,7 +154,6 @@ clean: rm -rf ./integration/fabric/iou/cmd/ rm -rf ./integration/fabric/iou/testdata/ rm -rf ./integration/fabric/twonets/cmd - rm -rf ./integration/fabric/weaver/relay/cmd rm -rf ./integration/fabric/stoprestart/cmd rm -rf ./integration/fsc/stoprestart/cmd rm -rf ./integration/orion/cars/cmd diff --git a/README.md b/README.md index d78b3d221..9cb20c0a2 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,6 @@ If you are a skilled software engineer, you will be able to leverage the full po But, this is not all. The Fabric Smart Client is a client-side component that can be used to develop applications: - Based on other backends like [`Orion`](https://github.com/hyperledger-labs/orion-server). -- With interoperability using the [`Weaver`](https://github.com/hyperledger-labs/weaver-dlt-interoperability) framework. - With TEE support as offered by [`Fabric Private Chaincode`](https://github.com/hyperledger/fabric-private-chaincode). - And more... diff --git a/docs/fabric/fabricdev/core/fabricdev/channelprovider.go b/docs/fabric/fabricdev/core/fabricdev/channelprovider.go index 0f0db1271..44c6d06b9 100644 --- a/docs/fabric/fabricdev/core/fabricdev/channelprovider.go +++ b/docs/fabric/fabricdev/core/fabricdev/channelprovider.go @@ -27,7 +27,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/hash" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/storage/vault" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" ) diff --git a/docs/fabric/fabricdev/core/fabricdev/driver/provider.go b/docs/fabric/fabricdev/core/fabricdev/driver/provider.go index 4cc6e2186..2dbf117a7 100644 --- a/docs/fabric/fabricdev/core/fabricdev/driver/provider.go +++ b/docs/fabric/fabricdev/core/fabricdev/driver/provider.go @@ -15,7 +15,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/sig" vault2 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/vault" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/storage/vault" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/hyperledger-labs/fabric-smart-client/docs/fabric/fabricdev/core/fabricdev" "github.com/hyperledger-labs/fabric-smart-client/docs/fabric/fabricdev/core/fabricdev/transaction" diff --git a/docs/sdk.md b/docs/sdk.md index e531bfcfe..26e8eb164 100644 --- a/docs/sdk.md +++ b/docs/sdk.md @@ -76,7 +76,6 @@ import ( digutils "github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/dig" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" fabricsdk "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/sdk/dig" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/services/weaver" ) type SDK struct { diff --git a/go.mod b/go.mod index 71eab74aa..4505167d7 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,13 @@ module github.com/hyperledger-labs/fabric-smart-client -go 1.22.6 +go 1.23.1 + +toolchain go1.23.5 require ( - github.com/IBM/idemix v0.0.2-0.20240816143710-3dce4618d760 - github.com/IBM/idemix/bccsp/types v0.0.0-20240816143710-3dce4618d760 - github.com/IBM/mathlib v0.0.3-0.20231011094432-44ee0eb539da + github.com/IBM/idemix v0.0.2-0.20250224151615-ebf95185165f + github.com/IBM/idemix/bccsp/types v0.0.0-20241220065751-dc7206770307 + github.com/IBM/mathlib v0.0.3-0.20241219051532-81539b287cf5 github.com/docker/docker v27.2.0+incompatible github.com/docker/go-connections v0.5.0 github.com/fsouza/go-dockerclient v1.12.0 @@ -15,20 +17,17 @@ require ( github.com/go-kit/log v0.2.1 github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.5.4 - github.com/google/go-cmp v0.6.0 github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.3 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/hashicorp/consul/sdk v0.16.1 github.com/hyperledger-labs/orion-sdk-go v0.2.10 github.com/hyperledger-labs/orion-server v0.2.10 - github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go v1.2.3-alpha.1 - github.com/hyperledger-labs/weaver-dlt-interoperability/sdks/fabric/go-sdk v1.2.3-alpha.1.0.20210812140206-37f430515b8c - github.com/hyperledger/fabric v1.4.0-rc1.0.20230405174026-695dd57e01c2 - github.com/hyperledger/fabric-chaincode-go v0.0.0-20240704073638-9fb89180dc17 + github.com/hyperledger/fabric v1.4.0-rc1.0.20240918034325-94590aa4332b + github.com/hyperledger/fabric-chaincode-go/v2 v2.0.0 github.com/hyperledger/fabric-contract-api-go v1.2.2 - github.com/hyperledger/fabric-lib-go v1.1.2 - github.com/hyperledger/fabric-protos-go v0.3.3 + github.com/hyperledger/fabric-lib-go v1.1.3-0.20240523144151-25edd1eaf5f5 + github.com/hyperledger/fabric-protos-go-apiv2 v0.3.3 github.com/jackc/pgx/v5 v5.7.1 github.com/jackc/pgxlisten v0.0.0-20241106001234-1d6f6656415c github.com/jellydator/ttlcache/v2 v2.11.1 @@ -40,12 +39,12 @@ require ( github.com/multiformats/go-multiaddr v0.13.0 github.com/onsi/ginkgo v1.16.5 github.com/onsi/ginkgo/v2 v2.20.2 - github.com/onsi/gomega v1.34.1 + github.com/onsi/gomega v1.34.2 github.com/otiai10/copy v1.14.0 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.20.5 github.com/spf13/cobra v1.8.1 - github.com/spf13/viper v1.19.0 + github.com/spf13/viper v1.20.0-alpha.6 github.com/stretchr/testify v1.9.0 github.com/tedsuo/ifrit v0.0.0-20230516164442-7862c310ad26 github.com/test-go/testify v1.1.4 @@ -61,14 +60,22 @@ require ( golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c golang.org/x/net v0.33.0 golang.org/x/sync v0.10.0 - google.golang.org/grpc v1.65.0 + google.golang.org/grpc v1.66.1 google.golang.org/protobuf v1.35.1 gopkg.in/yaml.v2 v2.4.0 modernc.org/sqlite v1.32.0 ) require ( + github.com/IBM/idemix/bccsp/schemes/aries v0.0.0-20241220065751-dc7206770307 // indirect + github.com/IBM/idemix/bccsp/schemes/weak-bb v0.0.0-20241220065751-dc7206770307 // indirect github.com/alecthomas/kingpin/v2 v2.4.0 // indirect + github.com/go-viper/mapstructure/v2 v2.0.0 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/hyperledger-labs/SmartBFT v0.0.0-20240916013553-852e5be5889b // indirect + github.com/hyperledger/aries-bbs-go v0.0.0-20240528084656-761671ea73bc // indirect + github.com/hyperledger/fabric-chaincode-go v0.0.0-20230731094759-d626e9ab09b9 // indirect + github.com/hyperledger/fabric-protos-go v0.3.3 // indirect github.com/libp2p/go-libp2p-routing-helpers v0.7.4 // indirect github.com/pion/datachannel v1.5.9 // indirect github.com/pion/dtls/v2 v2.2.12 // indirect @@ -87,7 +94,6 @@ require ( github.com/pion/turn/v2 v2.1.6 // indirect github.com/pion/webrtc/v3 v3.3.4 // indirect github.com/sagikazarmark/locafero v0.6.0 // indirect - github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/sykesm/zap-logfmt v0.0.4 // indirect github.com/wlynxg/anet v0.0.5 // indirect @@ -102,16 +108,11 @@ require ( cloud.google.com/go/iam v1.1.8 // indirect cloud.google.com/go/storage v1.42.0 // indirect code.cloudfoundry.org/clock v1.0.0 // indirect - github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/BurntSushi/toml v1.4.0 // indirect - github.com/IBM/idemix/bccsp/schemes/aries v0.0.0-20240612072411-114d281b442d // indirect - github.com/IBM/idemix/bccsp/schemes/weak-bb v0.0.0-20240612072411-114d281b442d // indirect github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible // indirect github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/SmartBFT-Go/consensus v0.0.0-20230212211744-e5a79afcea81 // indirect github.com/VictoriaMetrics/fastcache v1.12.0 // indirect - github.com/ale-linux/aries-framework-go/component/kmscrypto v0.0.0-20231023164747-f3f972769504 // indirect github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 // indirect github.com/benbjohnson/clock v1.3.5 // indirect @@ -172,10 +173,9 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect github.com/huin/goupnp v1.3.0 // indirect github.com/hyperledger/fabric-amcl v0.0.0-20230602173724-9e02669dceb2 // indirect - github.com/hyperledger/fabric-config v0.1.0 // indirect + github.com/hyperledger/fabric-config v0.3.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/ipfs/boxo v0.21.0 // indirect github.com/ipfs/go-cid v0.4.1 // indirect @@ -208,7 +208,6 @@ require ( github.com/libp2p/go-netroute v0.2.1 // indirect github.com/libp2p/go-reuseport v0.4.0 // indirect github.com/libp2p/go-yamux/v4 v4.0.1 // indirect - github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -240,7 +239,7 @@ require ( github.com/ncruces/go-strftime v0.1.9 // indirect github.com/nxadm/tail v1.4.11 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0-rc6 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect @@ -270,10 +269,10 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.12 // indirect - go.etcd.io/etcd/pkg/v3 v3.5.1 // indirect - go.etcd.io/etcd/raft/v3 v3.5.1 // indirect - go.etcd.io/etcd/server/v3 v3.5.1 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect + go.etcd.io/etcd/pkg/v3 v3.5.14 // indirect + go.etcd.io/etcd/raft/v3 v3.5.14 // indirect + go.etcd.io/etcd/server/v3 v3.5.14 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 go.opentelemetry.io/otel/metric v1.29.0 // indirect @@ -296,7 +295,6 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect - gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect diff --git a/go.sum b/go.sum index d322ca1f6..fe5e276b1 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/liamstask/goose v0.0.0-20150115234039-8488cc47d90c/go.mod h1:hSVuE3qU7grINVSwrmzHfpg9k87ALBk+XaualNyUzI4= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= @@ -281,7 +280,6 @@ cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCV cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= @@ -628,27 +626,22 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= -github.com/IBM/idemix v0.0.2-0.20240816143710-3dce4618d760 h1:KkXCAlR4QIFcDc+/PNVCzGbSGs9sunN852ob8tUwA64= -github.com/IBM/idemix v0.0.2-0.20240816143710-3dce4618d760/go.mod h1:VJKQspYKuHLuG8ukNHfFsFgD+NaJHlNO58ZWShlnPi4= -github.com/IBM/idemix/bccsp/schemes/aries v0.0.0-20240612072411-114d281b442d h1:8w1yWLIk0VzLTHFE1O8GwCaXs5hT9M7u4KsO+IwIen0= -github.com/IBM/idemix/bccsp/schemes/aries v0.0.0-20240612072411-114d281b442d/go.mod h1:vHi4fk2Im6fO0ofevbRr/EvblygatrTb1t2XlER58ik= -github.com/IBM/idemix/bccsp/schemes/weak-bb v0.0.0-20240612072411-114d281b442d h1:jIDz71083inpGWt9IPVGb0DoqyF7tQW/YH0gBLb6sKo= -github.com/IBM/idemix/bccsp/schemes/weak-bb v0.0.0-20240612072411-114d281b442d/go.mod h1:FC0vVgNI6bv8GH0VTwjup+arwJ8Tau1iEhroWZ1oPwU= -github.com/IBM/idemix/bccsp/types v0.0.0-20240816143710-3dce4618d760 h1:4tcdWj0MONt4JtiqNESWMuWSb5rDInIFzlUSbncHlCM= -github.com/IBM/idemix/bccsp/types v0.0.0-20240816143710-3dce4618d760/go.mod h1:4bYvi+a50aXxmHf1vwuvR+Wd8YXZ6AhT+0p5oK4xdOA= -github.com/IBM/mathlib v0.0.3-0.20231011094432-44ee0eb539da h1:qqGozq4tF6EOVnWoTgBoJGudRKKZXSAYnEtDggzTnsw= -github.com/IBM/mathlib v0.0.3-0.20231011094432-44ee0eb539da/go.mod h1:Tco9QzE3fQzjMS7nPbHDeFfydAzctStf1Pa8hsh6Hjs= +github.com/IBM/idemix v0.0.2-0.20250224151615-ebf95185165f h1:QfDVG36qK4BYOJ7gRKy9OiiyB7OXkwv0+JP/G12yUrA= +github.com/IBM/idemix v0.0.2-0.20250224151615-ebf95185165f/go.mod h1:oyCNerVvY3UsyBc2SugPLUcMb9aNjcWpi0XlxOSSVn4= +github.com/IBM/idemix/bccsp/schemes/aries v0.0.0-20241220065751-dc7206770307 h1:o4uD3gsbzji9tbOO8+jGM+ZG9WzA7z/c4CjzNAfQlok= +github.com/IBM/idemix/bccsp/schemes/aries v0.0.0-20241220065751-dc7206770307/go.mod h1:tdy6lOShDwWsftHJ7mjzyIYUc5sss3NC1M+NCg7bx3g= +github.com/IBM/idemix/bccsp/schemes/weak-bb v0.0.0-20241220065751-dc7206770307 h1:jt01i9xnT21sboeXCvwn+LAXbsj6p5GT/20JsuVOBfk= +github.com/IBM/idemix/bccsp/schemes/weak-bb v0.0.0-20241220065751-dc7206770307/go.mod h1:k4Q5EYKRnYC6t80ipSCY3G8H4FdcxRa8jjlsJdGfNCY= +github.com/IBM/idemix/bccsp/types v0.0.0-20241220065751-dc7206770307 h1:cbwi2EIyOfC4rj2rpfoSS+i0GGbJDDOjOvLzaMY9JWY= +github.com/IBM/idemix/bccsp/types v0.0.0-20241220065751-dc7206770307/go.mod h1:Pi1QIuIZ+1OXIbnYe27vNwJOnSq2WvkHRT/sfweTw8E= +github.com/IBM/mathlib v0.0.3-0.20241219051532-81539b287cf5 h1:wfksZZMeYfPeqsXwiotUsbnOqGGpth6t8Ij4tJ/91kw= +github.com/IBM/mathlib v0.0.3-0.20241219051532-81539b287cf5/go.mod h1:Tco9QzE3fQzjMS7nPbHDeFfydAzctStf1Pa8hsh6Hjs= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= -github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/SmartBFT-Go/consensus v0.0.0-20230212211744-e5a79afcea81 h1:yiyJRAf/rsEu3Sl0ATWu1zREfyaj01i9VsPbGiXzZZw= -github.com/SmartBFT-Go/consensus v0.0.0-20230212211744-e5a79afcea81/go.mod h1:ZOD/ZiAdH9HpqdsJLlUTlbzYBr/qYEzyYx7wClbrH+w= github.com/VictoriaMetrics/fastcache v1.12.0 h1:vnVi/y9yKDcD9akmc4NqAoqgQhJrOwUF+j9LTgn4QDE= github.com/VictoriaMetrics/fastcache v1.12.0/go.mod h1:tjiYeEfYXCqacuvYw/7UoDIeJaNxq6132xHICNP77w8= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= @@ -657,17 +650,10 @@ github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= -github.com/ale-linux/aries-framework-go/component/kmscrypto v0.0.0-20231023164747-f3f972769504 h1:sQyFeDcHVHWJ3IeE437NSJjv0+J/6MvGQOJew4X+Cuw= -github.com/ale-linux/aries-framework-go/component/kmscrypto v0.0.0-20231023164747-f3f972769504/go.mod h1:z5xq4Ji1RQojJLZzKeZH5+LKCVZxgQRZpQ4xAJWi8r0= github.com/alecthomas/kingpin/v2 v2.4.0 h1:f48lwail6p8zpO1bC4TxtqACaGqHYA22qkHjHpqDjYY= github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 h1:t3eaIm0rUkzbrIewtiFmMK5RXHej2XnoXNhxVsAYUfg= github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= @@ -678,23 +664,16 @@ github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kd github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= @@ -714,10 +693,6 @@ github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyY github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/certifi/gocertifi v0.0.0-20180118203423-deb3ae2ef261/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -729,10 +704,6 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/backoff v0.0.0-20161212185259-647f3cdfc87a/go.mod h1:rzgs2ZOiguV6/NpiDgADjRLPNyZlApIWxKpkT+X8SdY= -github.com/cloudflare/cfssl v1.4.1/go.mod h1:KManx/OJPb5QY+y0+o/898AMcM128sF0bURvoVUSjTo= -github.com/cloudflare/go-metrics v0.0.0-20151117154305-6a9aea36fb41/go.mod h1:eaZPlJWD+G9wseg1BuRXlHnjntPMrywMsyxf+LTOdP4= -github.com/cloudflare/redoctober v0.0.0-20171127175943-746a508df14c/go.mod h1:6Se34jNoqrd8bTxrmJB2Bg2aoZ2CdSXonils9NsiNgo= github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= @@ -750,12 +721,8 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= -github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs= -github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= -github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY= -github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/cockroachdb/datadriven v1.0.2 h1:H9MtNqVoVhvd9nCBwOyDjUEdZCREqbIdCJD93PBm/jA= +github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.13.0 h1:VPULb/v6bbYELAPTDFINEVaMTTybV5GLxDdcjnS+4oc= @@ -765,9 +732,7 @@ github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaD github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= @@ -776,7 +741,6 @@ github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= @@ -786,10 +750,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -802,8 +764,6 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnN github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/dennwc/base v1.0.0 h1:xlBzvBNRvkQ1LFI/jom7rr0vZsvYDKtvMM6lIpjFb3M= github.com/dennwc/base v1.0.0/go.mod h1:zaTDIiAcg2oKW9XhjIaRc1kJVteCFXSSW6jwmCedUaI= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/docker v27.2.0+incompatible h1:Rk9nIVdfH3+Vz4cyI/uhbINhEZ/oLmc+CBXmH6fbNk4= @@ -837,7 +797,6 @@ github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -845,7 +804,6 @@ github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg= github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -860,9 +818,6 @@ github.com/fsouza/go-dockerclient v1.12.0 h1:S2f2crEUbBNCFiF06kR/GvioEB8EMsb3Td/ github.com/fsouza/go-dockerclient v1.12.0/go.mod h1:YWUtjg8japrqD/80L98nTtCoxQFp5B5wrSsnyeB5lFo= github.com/gabriel-vasile/mimetype v1.4.4 h1:QjV6pZ7/XZ7ryI2KuyeEDE8wnh7fHP9YnQy+R0LnH8I= github.com/gabriel-vasile/mimetype v1.4.4/go.mod h1:JwLei5XPtWdGiMFB5Pjle1oEeoSeEuJfJE+TtfvdB/s= -github.com/getsentry/raven-go v0.0.0-20180121060056-563b81fc02b7/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs= -github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= @@ -881,8 +836,6 @@ github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmn github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -890,8 +843,6 @@ github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= @@ -927,12 +878,13 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-sql-driver/mysql v1.3.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/go-viper/mapstructure/v2 v2.0.0 h1:dhn8MZ1gZ0mzeodTG3jt5Vj/o87xZKuNAprG2mQfMfc= +github.com/go-viper/mapstructure/v2 v2.0.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/envy v1.10.2 h1:EIi03p9c3yeuRCFPOKcSfajzkLb3hrRjEpHGI8I2Wo4= @@ -956,7 +908,6 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -964,7 +915,6 @@ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGw github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -1005,8 +955,6 @@ github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -1094,85 +1042,62 @@ github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c h1:7lF+Vz0LqiRid github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hidal-go/hidalgo v0.0.0-20201109092204-05749a6d73df h1:bvz3e467dv98bVHQ9F5QbGKtGvyQO3rPD8lwu6fZ/D4= github.com/hidal-go/hidalgo v0.0.0-20201109092204-05749a6d73df/go.mod h1:bPkrxDlroXxigw8BMWTEPTv4W5/rQwNgg2BECXsgyX0= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/hyperledger-labs/SmartBFT v0.0.0-20240916013553-852e5be5889b h1:HihCDs7Hy69lykrPJP7Uc54DIWlTCYg4m/+kHRqxUk0= +github.com/hyperledger-labs/SmartBFT v0.0.0-20240916013553-852e5be5889b/go.mod h1:54hysiDJViMzhT0mJIqt8aUvkQ+yHj4RIdiGZzuosQs= github.com/hyperledger-labs/orion-sdk-go v0.2.10 h1:lFgWgxyvngIhWnIqymYGBmtmq9D6uC5d0uLG9cbyh5s= github.com/hyperledger-labs/orion-sdk-go v0.2.10/go.mod h1:iN2xZB964AqwVJwL+EnwPOs8z1EkMEbbIg/qYeC7gDY= github.com/hyperledger-labs/orion-server v0.2.10 h1:G4zbQEL5Egk0Oj+TwHCZWdTOLDBHOjaAEvYOT4G7ozw= github.com/hyperledger-labs/orion-server v0.2.10/go.mod h1:PfuEZFOxbR1o1TjdqL7gQXWD3B0WFET58u9p40rGN+Q= -github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go v1.2.3-alpha.1 h1:vBvo0PNm82ht7wpBjlYY4ZHxV3YprCfdVd3T4JG9vBw= -github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go v1.2.3-alpha.1/go.mod h1:POCGO/RK9YDfgdhuyqjoD9tRNtWfK7Rh5AYYmsb1Chc= -github.com/hyperledger-labs/weaver-dlt-interoperability/sdks/fabric/go-sdk v1.2.3-alpha.1.0.20210812140206-37f430515b8c h1:pKr8VnHlduEgdInwLWykYAw+lpUizjQJaJ8I5fVoRUo= -github.com/hyperledger-labs/weaver-dlt-interoperability/sdks/fabric/go-sdk v1.2.3-alpha.1.0.20210812140206-37f430515b8c/go.mod h1:si2XAWZclHXC359OyYMpNHfonf2P7P2nzABdCA8mPqs= -github.com/hyperledger/fabric v1.4.0-rc1.0.20230405174026-695dd57e01c2 h1:w5BGxCYEsc9vjdDEdZGrZ5redvs263RYsdT2tqF7cNk= -github.com/hyperledger/fabric v1.4.0-rc1.0.20230405174026-695dd57e01c2/go.mod h1:LSwfuRgX/5C2uHkdT3hJtBFu/ALxuL7dFj1pmBby2R4= +github.com/hyperledger/aries-bbs-go v0.0.0-20240528084656-761671ea73bc h1:3Ykk6MtyfnlzMOQry9zkxsoLWpCWZwDPqehO/BJwArM= +github.com/hyperledger/aries-bbs-go v0.0.0-20240528084656-761671ea73bc/go.mod h1:Kofn6A6WWea1ZM8Rys5aBW9dszwJ7Ywa0kyyYL0TPYw= +github.com/hyperledger/fabric v1.4.0-rc1.0.20240918034325-94590aa4332b h1:OzSgIDx5owx8InPK/w/tLNajLOedYwFbKqe5QQUz7jw= +github.com/hyperledger/fabric v1.4.0-rc1.0.20240918034325-94590aa4332b/go.mod h1:YTYvaVg6DFLvvEnUMUNnXlpQx4LCaXnme/l6g1ukHTM= github.com/hyperledger/fabric-amcl v0.0.0-20230602173724-9e02669dceb2 h1:B1Nt8hKb//KvgGRprk0h1t4lCnwhE9/ryb1WqfZbV+M= github.com/hyperledger/fabric-amcl v0.0.0-20230602173724-9e02669dceb2/go.mod h1:X+DIyUsaTmalOpmpQfIvFZjKHQedrURQ5t4YqquX7lE= -github.com/hyperledger/fabric-chaincode-go v0.0.0-20240704073638-9fb89180dc17 h1:SCsBjYLaoHCuyN6D3AAEX+YjBEnXn7MVpxn3rNX5gu4= -github.com/hyperledger/fabric-chaincode-go v0.0.0-20240704073638-9fb89180dc17/go.mod h1:6R5/nmBVrNVvk76xqH30j/ecqphXD3zS6gCeYPKK4nk= -github.com/hyperledger/fabric-config v0.0.5/go.mod h1:YpITBI/+ZayA3XWY5lF302K7PAsFYjEEPM/zr3hegA8= -github.com/hyperledger/fabric-config v0.1.0 h1:TsR3y5xEoUmXWfp8tcDycjJhVvXEHiV5kfZIxuIte08= -github.com/hyperledger/fabric-config v0.1.0/go.mod h1:aeDZ0moG/qKvwLjddcqYr8+58/oNaJy3HE0tI01546c= +github.com/hyperledger/fabric-chaincode-go v0.0.0-20230731094759-d626e9ab09b9 h1:XV1mxAmExeWraP5AmBSB1v415jMCSFJ087dRUiI6f6o= +github.com/hyperledger/fabric-chaincode-go v0.0.0-20230731094759-d626e9ab09b9/go.mod h1:WEd2Rlyj47/8b0VvH/zYPKamLdU3hg7jWqV8XEBTLOk= +github.com/hyperledger/fabric-chaincode-go/v2 v2.0.0 h1:IhkHfrl5X/fVnmB6pWeCYCdIJRi9bxj+WTnVN8DtW3c= +github.com/hyperledger/fabric-chaincode-go/v2 v2.0.0/go.mod h1:PHHaFffjw7p7n9bmCfcm7RqDqYdivNEsJdiNIKZo5Lk= +github.com/hyperledger/fabric-config v0.3.0 h1:FS5/dc9GAniljP6RYxQRG92AaiBVoN2vTvtOvnWqeQs= +github.com/hyperledger/fabric-config v0.3.0/go.mod h1:kSevTn78K83Suc++JsEo7Nt1tYIPqDajW+ORz3OhWlg= github.com/hyperledger/fabric-contract-api-go v1.2.2 h1:zun9/BmaIWFSSOkfQXikdepK0XDb7MkJfc/lb5j3ku8= github.com/hyperledger/fabric-contract-api-go v1.2.2/go.mod h1:UnFLlRFn8GvXE7mXxWtU+bESM7fb5YzsKo1DA16vvaE= -github.com/hyperledger/fabric-lib-go v1.0.0/go.mod h1:H362nMlunurmHwkYqR5uHL2UDWbQdbfz74n8kbCFsqc= -github.com/hyperledger/fabric-lib-go v1.1.2 h1:3eHwudGZC5Ex7go5UAzVKhpF34gypPZGfSZksBKLWvE= -github.com/hyperledger/fabric-lib-go v1.1.2/go.mod h1:SHNCq8AB0VpHAmvJEtdbzabv6NNV1F48JdmDihasBjc= -github.com/hyperledger/fabric-protos-go v0.0.0-20200424173316-dd554ba3746e/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0= -github.com/hyperledger/fabric-protos-go v0.0.0-20200707132912-fee30f3ccd23/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0= +github.com/hyperledger/fabric-lib-go v1.1.3-0.20240523144151-25edd1eaf5f5 h1:RPWTL5wxAb+xDOrsCU3QYZP65305F8v3PaOyzdbPVMU= +github.com/hyperledger/fabric-lib-go v1.1.3-0.20240523144151-25edd1eaf5f5/go.mod h1:SHNCq8AB0VpHAmvJEtdbzabv6NNV1F48JdmDihasBjc= github.com/hyperledger/fabric-protos-go v0.3.3 h1:0nssqz8QWJNVNBVQz+IIfAd2j1ku7QPKFSM/1anKizI= github.com/hyperledger/fabric-protos-go v0.3.3/go.mod h1:BPXse9gIOQwyAePQrwQVUcc44bTW4bB5V3tujuvyArk= -github.com/hyperledger/fabric-sdk-go v1.0.0/go.mod h1:qWE9Syfg1KbwNjtILk70bJLilnmCvllIYFCSY/pa1RU= +github.com/hyperledger/fabric-protos-go-apiv2 v0.3.3 h1:Xpd6fzG/KjAOHJsq7EQXY2l+qi/y8muxBaY7R6QWABk= +github.com/hyperledger/fabric-protos-go-apiv2 v0.3.3/go.mod h1:2pq0ui6ZWA0cC8J+eCErgnMDCS1kPOEYVY+06ZAK0qE= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -1216,43 +1141,30 @@ github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZl github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jellydator/ttlcache/v2 v2.11.1 h1:AZGME43Eh2Vv3giG6GeqeLeFXxwxn1/qHItqWZl6U64= github.com/jellydator/ttlcache/v2 v2.11.1/go.mod h1:RtE5Snf0/57e+2cLWFYWCCsLas2Hy3c5Z4n14XmSvTI= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmhodges/clock v0.0.0-20160418191101-880ee4c33548/go.mod h1:hGT6jSUVzF6no3QaDSMLGLEHtHSBSefs+MgcDWnmhmo= -github.com/jmoiron/sqlx v0.0.0-20180124204410-05cef0741ade/go.mod h1:IiEW3SEiiErVyFdH8NTuWjSifiEQKUoyK3LNqr2kCHU= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kilic/bls12-381 v0.1.0 h1:encrdjqKMEvabVQ7qYOKu1OvhqpK4s47wDYtNiPtlp4= github.com/kilic/bls12-381 v0.1.0/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kisielk/sqlstruct v0.0.0-20150923205031-648daed35d49/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE= -github.com/kisom/goutils v1.1.0/go.mod h1:+UBTfd78habUYWFbNWTJNG+jNG/i/lGURakr4A/yNRw= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= @@ -1263,11 +1175,9 @@ github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZY github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/koron/go-ssdp v0.0.4 h1:1IDwrghSKYM7yLf7XCzbByg2sJ/JcNOZRXS2jczTwz0= github.com/koron/go-ssdp v0.0.4/go.mod h1:oDXq+E5IL5q0U8uSBcoAXzTzInwy5lEgC91HoKtbmZk= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= @@ -1278,14 +1188,12 @@ github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/go-gypsy v0.0.0-20160905020020-08cad365cd28/go.mod h1:T/T7jsxVqf9k/zYOqbgNAsANsjxTd1Yq3htjDhQ1H0c= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= -github.com/lib/pq v0.0.0-20180201184707-88edab080323/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= @@ -1321,9 +1229,6 @@ github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuz github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -1332,21 +1237,16 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= -github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8= @@ -1363,15 +1263,8 @@ github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dz github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/miracl/conflate v1.3.4 h1:BI+pOex3Pp7DtSaTDqArYDMKSSDYUvRjb66lgAHhSFw= github.com/miracl/conflate v1.3.4/go.mod h1:7S2L/ymkFyEgv8oM5G6sKxTExeRkLqxPBJgNz7g1ys0= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= @@ -1392,7 +1285,6 @@ github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= @@ -1401,7 +1293,6 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474/go.mod h1:OQA4XLvDbMgS8P0CevmM4m9Q3Jq4phKUzcocxuGJ5m8= github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= @@ -1426,7 +1317,6 @@ github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/n github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= @@ -1434,13 +1324,11 @@ github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJm github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= @@ -1461,7 +1349,6 @@ github.com/onsi/ginkgo/v2 v2.9.4/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLyw github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= @@ -1475,13 +1362,12 @@ github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfad github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557cZ6Gw= github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= -github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= -github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= +github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0-rc6 h1:XDqvyKsJEbRtATzkgItUqBA7QHk58yxX1Ov9HERHNqU= +github.com/opencontainers/image-spec v1.1.0-rc6/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= @@ -1493,11 +1379,9 @@ github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs= github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= @@ -1547,7 +1431,6 @@ github.com/pion/turn/v2 v2.1.6/go.mod h1:huEpByKKHix2/b9kmTAM3YoX6MKP+/D//0ClgUY github.com/pion/webrtc/v3 v3.3.4 h1:v2heQVnXTSqNRXcaFQVOhIOYkLMxOu1iJG8uy1djvkk= github.com/pion/webrtc/v3 v3.3.4/go.mod h1:liNa+E1iwyzyXqNUwvoMRNQ10x8h8FOeJKL8RkIbamE= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -1558,42 +1441,21 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/polydawn/refmt v0.89.0 h1:ADJTApkvkeBZsN0tBTx8QjpD9JkmxbKp0cxfr9qszm4= github.com/polydawn/refmt v0.89.0/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI= github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg= github.com/quic-go/quic-go v0.48.2 h1:wsKXZPeGWpMpCGSWqOcqpW2wZYic/8T3aqiOID0/KWE= @@ -1605,7 +1467,6 @@ github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtD github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1618,12 +1479,8 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/locafero v0.6.0 h1:ON7AQg37yzcRPU69mt7gwhFEBwxI6P9T4Qu3N51bwOk= github.com/sagikazarmark/locafero v0.6.0/go.mod h1:77OmuIc6VTraTXKXIs/uvUxKGUXjE1GbemJYHqdNjX0= -github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= -github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= @@ -1648,23 +1505,15 @@ github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go. github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs= github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg= github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= @@ -1673,30 +1522,24 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.3.1/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.1.1/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= -github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/spf13/viper v1.20.0-alpha.6 h1:f65Cr/+2qk4GfHC0xqT/isoupQppwN5+VLRztUGTDbY= +github.com/spf13/viper v1.20.0-alpha.6/go.mod h1:CGBZzv0c9fOUASm6rfus4wdeIjR/04NOLq1P4KRhX3k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -1717,7 +1560,6 @@ github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/sykesm/zap-logfmt v0.0.4 h1:U2WzRvmIWG1wDLCFY3sz8UeEmsdHQjHFNlIdmroVFaI= @@ -1730,8 +1572,6 @@ github.com/tedsuo/ifrit v0.0.0-20230516164442-7862c310ad26 h1:mWCRvpoEMVlslxEvvp github.com/tedsuo/ifrit v0.0.0-20230516164442-7862c310ad26/go.mod h1:0uD3VMXkZ7Bw0ojGCwDzebBBzPBXtzEZeXai+56BLX4= github.com/test-go/testify v1.1.4 h1:Tf9lntrKUMHiXQ07qBScBTSA0dhYQlu83hswqelv1iE= github.com/test-go/testify v1.1.4/go.mod h1:rH7cfJo/47vWGdi4GPj16x3/t1xGOj2YxzmNQzk2ghU= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tylertreat/BoomFilters v0.0.0-20181028192813-611b3dbe80e8 h1:7X4KYG3guI2mPQGxm/ZNNsiu4BjKnef0KG0TblMC+Z8= @@ -1741,14 +1581,10 @@ github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65E github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0 h1:GDDkbFiaK8jsSDJfjId/PEGEShv6ugrt4kYsC5UIDaQ= github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= -github.com/weppos/publicsuffix-go v0.4.0/go.mod h1:z3LCPQ38eedDQSwmsSRW4Y7t2L8Ln16JPQ02lHAdn5k= -github.com/weppos/publicsuffix-go v0.5.0/go.mod h1:z3LCPQ38eedDQSwmsSRW4Y7t2L8Ln16JPQ02lHAdn5k= github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= github.com/wlynxg/anet v0.0.3/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= @@ -1775,27 +1611,16 @@ github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= -github.com/zmap/rc2 v0.0.0-20131011165748-24b9757f5521/go.mod h1:3YZ9o3WnatTIZhuOtot4IcUfzoKVjUHqu6WALIyI0nE= -github.com/zmap/zcertificate v0.0.0-20180516150559-0e3d58b1bac4/go.mod h1:5iU54tB79AMBcySS0R2XIyZBAVmeHranShAFELYx7is= -github.com/zmap/zcrypto v0.0.0-20190729165852-9051775e6a2e/go.mod h1:w7kd3qXHh8FNaczNjslXqvFQiv5mMWRXlL9klTUAHc8= -github.com/zmap/zlint v0.0.0-20190806154020-fd021b4cfbeb/go.mod h1:29UiAJNsiVdvTBFCJW8e3q6dcDbOoPkhMgttOSCIMMY= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd v0.5.0-alpha.5.0.20210226220824-aa7126864d82 h1:RCaUKN0yRYKT2JzV9kH4u+D6l9VWcJMQ449QKRriFc8= go.etcd.io/etcd v0.5.0-alpha.5.0.20210226220824-aa7126864d82/go.mod h1:WWRiAtnzDdtuCMxtFwME/Knea11a6fJgJkwtC1QSc/k= -go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/pkg/v3 v3.5.12 h1:EYDL6pWwyOsylrQyLp2w+HkQ46ATiOvoEdMarindU2A= -go.etcd.io/etcd/client/pkg/v3 v3.5.12/go.mod h1:seTzl2d9APP8R5Y2hFL3NVlD6qC/dOT+3kvrqPyTas4= -go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= -go.etcd.io/etcd/client/v3 v3.5.1/go.mod h1:OnjH4M8OnAotwaB2l9bVgZzRFKru7/ZMoS46OtKyd3Q= -go.etcd.io/etcd/pkg/v3 v3.5.1 h1:nYifzmtBQ2l91wUQM6aZGGwR/pvpQQyscmS4azm184Q= -go.etcd.io/etcd/pkg/v3 v3.5.1/go.mod h1:Qb9MvSx6rlo+Es8pOvkCQjGf7L8GA+NxrkRcyZ7eGXo= -go.etcd.io/etcd/raft/v3 v3.5.1 h1:nthXrxmATKB9OZ9C64sk3QZaJ1WZ8tmlI0VwzpJSZwg= -go.etcd.io/etcd/raft/v3 v3.5.1/go.mod h1:WIlKzH/rjc54LDZ8SOa7GObrrdX3z96MkP1WDfODBeA= -go.etcd.io/etcd/server/v3 v3.5.1 h1:u8risUH348DmLy2XD3krH/S3GWk2ljuCrs8V3hd4584= -go.etcd.io/etcd/server/v3 v3.5.1/go.mod h1:yBKYw++NWu6ciuWoKuL7UXgGKDP7ICBCuVQrIcYbPdw= +go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= +go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= +go.etcd.io/etcd/pkg/v3 v3.5.14 h1:keuxhJiDCPjTKpW77GxJnnVVD5n4IsfvkDaqiqUMNEQ= +go.etcd.io/etcd/pkg/v3 v3.5.14/go.mod h1:7o+DL6a7DYz9KSjWByX+NGmQPYinoH3D36VAu/B3JqA= +go.etcd.io/etcd/raft/v3 v3.5.14 h1:mHnpbljpBBftmK+YUfp+49ivaCc126aBPLAnwDw0DnE= +go.etcd.io/etcd/raft/v3 v3.5.14/go.mod h1:WnIK5blyJGRKsHA3efovdNoLv9QELTZHzpDOVIAuL2s= +go.etcd.io/etcd/server/v3 v3.5.14 h1:l/3gdiSSoGU6MyKAYiL+8WSOMq9ySG+NqQ04euLtZfY= +go.etcd.io/etcd/server/v3 v3.5.14/go.mod h1:SPh0rUtGNDgOZd/aTbkAUYZV+5FFHw5sdbGnO2/byw0= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -1806,17 +1631,12 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= -go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.28.0 h1:R3X6ZXmNPRR8ul6i3WgFURCHzaXjHdm0karRG/+dj3s= @@ -1825,16 +1645,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 h1:QY7/0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0/go.mod h1:HVkSiDhTM9BoUJU8qE6j2eSWLLXvi1USXjyd2BXT8PY= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.28.0 h1:EVSnY9JbEEW92bEkIYOVMw4q1WJxIAGoFTrtYOzWuRQ= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.28.0/go.mod h1:Ea1N1QQryNXpCD0I1fdLibBAIpQuBkznMmkdKrapk1Y= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= @@ -1842,7 +1656,6 @@ go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -1858,19 +1671,15 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= @@ -1879,8 +1688,6 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -1889,13 +1696,10 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -1974,12 +1778,8 @@ golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1988,7 +1788,6 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -2010,7 +1809,6 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -2100,14 +1898,9 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2120,7 +1913,6 @@ golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2128,7 +1920,6 @@ golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2144,11 +1935,8 @@ golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2156,7 +1944,6 @@ golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2164,12 +1951,10 @@ golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2256,13 +2041,11 @@ golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -2289,7 +2072,6 @@ golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -2622,8 +2404,8 @@ google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= -google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= -google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/grpc v1.66.1 h1:hO5qAXR19+/Z44hmvIM4dQFMSYX9XcWsByfoxutBpAM= +google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20230512210959-5dcfb37c0b43/go.mod h1:irORyHPQXotoshbRTZVFvPDcfTfFHL23efQeop+H45M= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -2656,19 +2438,12 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= @@ -2758,6 +2533,5 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/integration/fabric/atsa/chaincode/chaincode/asset_transfer.go b/integration/fabric/atsa/chaincode/chaincode/asset_transfer.go index 9dfdc946b..742cca7d6 100644 --- a/integration/fabric/atsa/chaincode/chaincode/asset_transfer.go +++ b/integration/fabric/atsa/chaincode/chaincode/asset_transfer.go @@ -17,11 +17,10 @@ import ( "log" "time" - "github.com/pkg/errors" - "github.com/hyperledger/fabric-chaincode-go/pkg/statebased" "github.com/hyperledger/fabric-chaincode-go/shim" "github.com/hyperledger/fabric-contract-api-go/contractapi" + "github.com/pkg/errors" ) const ( @@ -202,7 +201,7 @@ func (s *SmartContract) VerifyAssetProperties(ctx contractapi.TransactionContext return false, fmt.Errorf("error getting transient: %v", err) } - /// Asset properties must be retrieved from the transient field as they are private + // / Asset properties must be retrieved from the transient field as they are private immutablePropertiesJSON, ok := transMap["asset_properties"] if !ok { return false, fmt.Errorf("asset_properties key not found in the transient map") diff --git a/integration/fabric/weaver/relay/chaincode/go.mod b/integration/fabric/atsa/chaincode/chaincode/go.mod similarity index 57% rename from integration/fabric/weaver/relay/chaincode/go.mod rename to integration/fabric/atsa/chaincode/chaincode/go.mod index 1433280f7..c98a501cc 100644 --- a/integration/fabric/weaver/relay/chaincode/go.mod +++ b/integration/fabric/atsa/chaincode/chaincode/go.mod @@ -1,36 +1,36 @@ -module github.com/hyperledger-labs/fabric-smart-client/integration/fabric/weaver/relay/chaincode +module github.com/hyperledger-labs/fabric-smart-client/integration/fabric/atsa/chaincode/chaincode go 1.22.6 require ( + github.com/hyperledger/fabric-chaincode-go v0.0.0-20240704073638-9fb89180dc17 github.com/hyperledger/fabric-contract-api-go v1.2.2 github.com/pkg/errors v0.9.1 ) require ( - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.21.0 // indirect - github.com/go-openapi/spec v0.21.0 // indirect - github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/jsonpointer v0.20.0 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/spec v0.20.9 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/gobuffalo/envy v1.10.2 // indirect github.com/gobuffalo/packd v1.0.2 // indirect github.com/gobuffalo/packr v1.30.1 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/hyperledger/fabric-chaincode-go v0.0.0-20240704073638-9fb89180dc17 // indirect github.com/hyperledger/fabric-protos-go v0.3.3 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - golang.org/x/mod v0.20.0 // indirect - golang.org/x/net v0.28.0 // indirect - golang.org/x/sys v0.24.0 // indirect - golang.org/x/text v0.17.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed // indirect - google.golang.org/grpc v1.66.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect + google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect + google.golang.org/grpc v1.65.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/integration/fabric/weaver/relay/chaincode/go.sum b/integration/fabric/atsa/chaincode/chaincode/go.sum similarity index 72% rename from integration/fabric/weaver/relay/chaincode/go.sum rename to integration/fabric/atsa/chaincode/chaincode/go.sum index a5248c4b4..ba814dc9d 100644 --- a/integration/fabric/weaver/relay/chaincode/go.sum +++ b/integration/fabric/atsa/chaincode/chaincode/go.sum @@ -4,18 +4,26 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= -github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= -github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= -github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= +github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8= +github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/envy v1.10.2 h1:EIi03p9c3yeuRCFPOKcSfajzkLb3hrRjEpHGI8I2Wo4= github.com/gobuffalo/envy v1.10.2/go.mod h1:qGAGwdvDsaEtPhfBzb3o0SfDea8ByGn9j8bKmVft9z8= @@ -48,6 +56,7 @@ github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0L github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -55,10 +64,14 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -68,8 +81,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= @@ -81,10 +94,13 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -99,36 +115,40 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= -golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed h1:J6izYgfBXAI3xTKLgxzTmUltdYaLsuBxFCgDHWJ/eXg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= -google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/integration/fabric/weaver/relay/README.md b/integration/fabric/weaver/relay/README.md deleted file mode 100644 index 7eb95fa45..000000000 --- a/integration/fabric/weaver/relay/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Data Transfer using Weaver Relay Service - -In this Section, we will learn how to perform a data Transfer between two Fabric networks. -We have two business parties: -- `Alice` is a client of the Fabric network `alpha`. -- `Bob` is a client of the Fabric network `beta`. -Alice and Bob engage in the following business process: -- Alice puts new data in `alpha` inside a given namespace of a given channel. -- Alice contacts Bob telling him new data is available in `alpha`. -- Bob receives the name of the variable set by Alice. -- Bob `queries` Fabric network `alpha`, using `Weaver`, to get a proof that what Alice said is trustable. -- If the previous step is successful, then Bob stores the same data in `beta` (inside a given namespace of a given channel). -- Bob acks Alice that he has completed his task. -- Finally, Alice checks that Bob has actually stored the data she put in `alpha`, using `Weaver`. - -## Weaver - -Weaver is a platform, a protocol suite, and a set of tools, to enable interoperation for data sharing and asset -movements between independent networks built on heterogeneous blockchain, or more generally, distributed ledger, -technologies, in a manner that preserves the core blockchain tenets of decentralization and security. \ No newline at end of file diff --git a/integration/fabric/weaver/relay/chaincode/chaincode.go b/integration/fabric/weaver/relay/chaincode/chaincode.go deleted file mode 100644 index 54fefa053..000000000 --- a/integration/fabric/weaver/relay/chaincode/chaincode.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package main - -import ( - "log" - - "github.com/hyperledger/fabric-contract-api-go/contractapi" - "github.com/pkg/errors" -) - -type SmartContract struct { - contractapi.Contract -} - -func (s *SmartContract) Put(ctx contractapi.TransactionContextInterface, key string, value string) error { - return ctx.GetStub().PutState(key, []byte(value)) -} - -func (s *SmartContract) Get(ctx contractapi.TransactionContextInterface, key string) (string, error) { - v, err := ctx.GetStub().GetState(key) - if err != nil { - return "", errors.Wrapf(err, "failed getting state [%s]", key) - } - err = ctx.GetStub().PutState(key, v) - if err != nil { - return "", errors.Wrapf(err, "failed putting state [%s:%s]", key, string(v)) - } - if len(v) == 0 { - return "", nil - } - return string(v), nil -} - -func main() { - chaincode, err := contractapi.NewChaincode(new(SmartContract)) - if err != nil { - log.Panicf("Error create chaincode: %v", err) - } - - if err := chaincode.Start(); err != nil { - log.Panicf("Error starting asset chaincode: %v", err) - } -} diff --git a/integration/fabric/weaver/relay/relay_suite_test.go b/integration/fabric/weaver/relay/relay_suite_test.go deleted file mode 100644 index 0db4f7fc7..000000000 --- a/integration/fabric/weaver/relay/relay_suite_test.go +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright IBM Corp All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package relay_test - -import ( - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - - "github.com/hyperledger-labs/fabric-smart-client/integration" -) - -func TestEndToEnd(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Two Fabric Networks Suite with Weaver Relay") -} - -func StartPort() int { - return integration.TwoFabricNetworksWithWeaverRelayPort.StartPortForNode() -} diff --git a/integration/fabric/weaver/relay/relay_test.go b/integration/fabric/weaver/relay/relay_test.go deleted file mode 100644 index 38b74f048..000000000 --- a/integration/fabric/weaver/relay/relay_test.go +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright IBM Corp All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package relay_test - -import ( - "os" - - "github.com/hyperledger-labs/fabric-smart-client/integration" - "github.com/hyperledger-labs/fabric-smart-client/integration/fabric/weaver/relay" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/common" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("EndToEnd", func() { - Describe("Two Fabric Networks with Weaver Relay Life Cycle With Websockets", func() { - s := NewTestSuite(fsc.WebSocket, integration.NoReplication) - BeforeEach(s.Setup) - AfterEach(s.TearDown) - It("succeeded", s.TestSucceeded) - }) - - //Describe("Two Fabric Networks with Weaver Relay Life Cycle With LibP2P", func() { - // s := TestSuite{commType: fsc.LibP2P} - // BeforeEach(s.Setup) - // AfterEach(s.TearDown) - // It("succeeded", s.TestSucceeded) - //}) -}) - -const testdataPath = "./testdata" - -type TestSuite struct { - *integration.TestSuite -} - -func NewTestSuite(commType fsc.P2PCommunicationType, nodeOpts *integration.ReplicationOptions) *TestSuite { - return &TestSuite{integration.NewTestSuite(func() (*integration.Infrastructure, error) { - return integration.GenerateAt(StartPort(), testdataPath, true, relay.Topology(&relay.SDK{}, commType, nodeOpts)...) - })} -} - -func (s *TestSuite) TestSucceeded() { - res, err := s.II.Client("alice").CallView("init", nil) - Expect(err).NotTo(HaveOccurred()) - Expect(common.JSONUnmarshalString(res)).To(BeEquivalentTo("OK")) - - // cleanup testdata when test succeeds. - // if the test fails, we keep the test data for reviewing what went wrong - err = os.RemoveAll(testdataPath) - Expect(err).NotTo(HaveOccurred()) -} diff --git a/integration/fabric/weaver/relay/sdk.go b/integration/fabric/weaver/relay/sdk.go deleted file mode 100644 index 0f4a21d8f..000000000 --- a/integration/fabric/weaver/relay/sdk.go +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package relay - -import ( - "errors" - - "github.com/hyperledger-labs/fabric-smart-client/pkg/node" - dig2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/sdk/dig" - digutils "github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/dig" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - fabricsdk "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/sdk/dig" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/services/weaver" - "go.uber.org/dig" -) - -type Provider interface { - Relay(fns *fabric.NetworkService) *weaver.Relay -} - -type SDK struct { - dig2.SDK -} - -func NewSDK(registry node.Registry) *SDK { - return &SDK{SDK: fabricsdk.NewSDK(registry)} -} - -func (p *SDK) Install() error { - if err := errors.Join( - p.Container().Provide(weaver.NewProvider, dig.As(new(Provider))), - ); err != nil { - return err - } - if err := p.SDK.Install(); err != nil { - return err - } - - return errors.Join( - digutils.Register[Provider](p.Container()), - ) -} diff --git a/integration/fabric/weaver/relay/topology.go b/integration/fabric/weaver/relay/topology.go deleted file mode 100644 index cc4f21429..000000000 --- a/integration/fabric/weaver/relay/topology.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package relay - -import ( - "github.com/hyperledger-labs/fabric-smart-client/integration" - "github.com/hyperledger-labs/fabric-smart-client/integration/fabric/weaver/relay/views" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/api" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/weaver" - api2 "github.com/hyperledger-labs/fabric-smart-client/pkg/api" -) - -func Topology(sdk api2.SDK, commType fsc.P2PCommunicationType, replicationOpts *integration.ReplicationOptions) []api.Topology { - // Define two Fabric topologies - f1Topology := fabric.NewTopologyWithName("alpha") - f1Topology.AddOrganizationsByName("Org1", "Org2") - f1Topology.SetNamespaceApproverOrgs("Org1") - f1Topology.AddNamespaceWithUnanimity("ns1", "Org1").SetChaincodePath( - "github.com/hyperledger-labs/fabric-smart-client/integration/fabric/weaver/relay/chaincode", - ).NoInit() - - f2Topology := fabric.NewTopologyWithName("beta") - f2Topology.EnableGRPCLogging() - f2Topology.AddOrganizationsByName("Org3", "Org4") - f2Topology.SetNamespaceApproverOrgs("Org3") - f2Topology.AddNamespaceWithUnanimity("ns2", "Org3").SetChaincodePath( - "github.com/hyperledger-labs/fabric-smart-client/integration/fabric/weaver/relay/chaincode", - ).NoInit() - - // Define weaver relay server topology. One relay server per Fabric network - wTopology := weaver.NewTopology() - wTopology.AddRelayServer(f1Topology, "Org1").AddFabricNetwork(f2Topology) - wTopology.AddRelayServer(f2Topology, "Org3").AddFabricNetwork(f1Topology) - - // Define an FSC topology with 2 FCS nodes. - fscTopology := fsc.NewTopology() - fscTopology.P2PCommunicationType = commType - - // Add alice's FSC node - fscTopology.AddNodeByName("alice"). - AddOptions(fabric.WithDefaultNetwork("alpha"), fabric.WithNetworkOrganization("alpha", "Org1")). - AddOptions(replicationOpts.For("alice")...). - RegisterViewFactory("init", &views.InitiatorViewFactory{}) - - // Add bob's FSC node - fscTopology.AddNodeByName("bob"). - AddOptions(fabric.WithDefaultNetwork("beta"), fabric.WithNetworkOrganization("beta", "Org3")). - AddOptions(replicationOpts.For("bob")...). - RegisterResponder(&views.Responder{}, &views.InitiatorView{}) - - // Add Fabric SDK to FSC Nodes - fscTopology.AddSDK(sdk) - - return []api.Topology{f1Topology, f2Topology, wTopology, fscTopology} -} diff --git a/integration/fabric/weaver/relay/views/initiator.go b/integration/fabric/weaver/relay/views/initiator.go deleted file mode 100644 index aff8ea303..000000000 --- a/integration/fabric/weaver/relay/views/initiator.go +++ /dev/null @@ -1,79 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package views - -import ( - "time" - - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/services/weaver" - view2 "github.com/hyperledger-labs/fabric-smart-client/platform/view" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/assert" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/session" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" -) - -type InitiatorView struct{} - -func (p *InitiatorView) Call(context view.Context) (interface{}, error) { - // Alice puts new data in `alpha` inside a given namespace of a given channel. - // `alpha` is the default fabric network for Alice - value := "sweet" - _, ch, err := fabric.GetDefaultChannel(context) - assert.NoError(err) - _, _, err = ch.Chaincode("ns1").Invoke( - "Put", "pineapple", value, - ).Call() - assert.NoError(err, "failed putting state") - - // Alice contacts Bob telling him new data is available in `alpha` - session, err := session.NewJSON(context, context.Initiator(), view2.GetIdentityProvider(context).Identity("bob")) - assert.NoError(err) - assert.NoError(session.Send("pineapple")) - - var ack string - assert.NoError(session.ReceiveWithTimeout(&ack, 1*time.Minute)) - assert.Equal("ack", ack, "failed getting ack back, got [%s]", ack) - - // Finally, Alice checks that Bob has actually stored the data she put in `alpha`, using `Weaver`. - fns, err := fabric.GetDefaultFNS(context) - assert.NoError(err) - relay := weaver.GetProvider(context).Relay(fns) - query, err := relay.ToFabric().Query("fabric://beta.testchannel.ns2/", "Get", "pineapple") - assert.NoError(err, "failed creating fabric query") - res, err := query.Call() - assert.NoError(err, "failed querying remote destination") - assert.NotNil(res, "result should be non-empty") - - // Double-check the proof - proofRaw, err := res.Proof() - assert.NoError(err, "failed getting proof from query result") - proof, err := relay.ToFabric().ProofFromBytes(proofRaw) - assert.NoError(err, "failed unmarshalling proof") - assert.NoError(proof.Verify(), "failed verifying proof") - - // Inspect content - assert.Equal(res.Result(), proof.Result(), "result should be equal, got [%s]!=[%s]", string(res.Result()), string(proof.Result())) - rwset1, err := res.RWSet() - assert.NoError(err, "failed getting rwset from result") - rwset2, err := proof.RWSet() - assert.NoError(err, "failed getting rwset from proof") - v1, err := rwset1.GetState("ns1", "pineapple") - assert.NoError(err, "failed getting key's value from rwset1") - v2, err := rwset2.GetState("ns1", "pineapple") - assert.NoError(err, "failed getting key's value from rwset2") - assert.Equal(v1, v2, "excepted same write [%s]!=[%s]", string(v1), string(v2)) - - // Return - return "OK", nil -} - -type InitiatorViewFactory struct{} - -func (p *InitiatorViewFactory) NewView(in []byte) (view.View, error) { - return &InitiatorView{}, nil -} diff --git a/integration/fabric/weaver/relay/views/responder.go b/integration/fabric/weaver/relay/views/responder.go deleted file mode 100644 index e04a12628..000000000 --- a/integration/fabric/weaver/relay/views/responder.go +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package views - -import ( - "time" - - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/services/weaver" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/assert" - session2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/session" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" -) - -type Responder struct{} - -func (p *Responder) Call(context view.Context) (interface{}, error) { - // Bob receives the name of the variable set by Alice. - session := session2.JSON(context) - var stateVariable string - assert.NoError(session.ReceiveWithTimeout(&stateVariable, 60*time.Second), "failed getting state variable") - - // Bob `queries` Fabric network `alpha`, using `Weaver`, to get a proof that what Alice said is trustable. - fsn, err := fabric.GetDefaultFNS(context) - assert.NoError(err) - relay := weaver.GetProvider(context).Relay(fsn) - query, err := relay.ToFabric().Query("fabric://alpha.testchannel.ns1/", "Get", stateVariable) - assert.NoError(err, "failed creating fabric query") - res, err := query.Call() - assert.NoError(err, "failed querying remote destination") - assert.NotNil(res, "result should be non-empty") - - // Double-check the proof - proofRaw, err := res.Proof() - assert.NoError(err, "failed getting proof from query result") - proof, err := relay.ToFabric().ProofFromBytes(proofRaw) - assert.NoError(err, "failed unmarshalling proof") - assert.NoError(proof.Verify(), "failed verifying proof") - - // Inspect content - assert.Equal(res.Result(), proof.Result(), "result should be equal, got [%s]!=[%s]", string(res.Result()), string(proof.Result())) - rwset1, err := res.RWSet() - assert.NoError(err, "failed getting rwset from result") - rwset2, err := proof.RWSet() - assert.NoError(err, "failed getting rwset from proof") - v1, err := rwset1.GetState("ns1", stateVariable) - assert.NoError(err, "failed getting key's value from rwset1") - v2, err := rwset2.GetState("ns1", stateVariable) - assert.NoError(err, "failed getting key's value from rwset2") - assert.Equal(v1, v2, "excepted same write [%s]!=[%s]", string(v1), string(v2)) - - // If the previous step is successful, then Bob stores the same data in `beta` (inside a given namespace of a given channel). - _, ch, err := fabric.GetDefaultChannel(context) - assert.NoError(err) - _, _, err = ch.Chaincode("ns2").Invoke( - "Put", stateVariable, string(res.Result()), - ).Call() - assert.NoError(err, "failed putting state") - - // Bob acks Alice that he has completed his task. - assert.NoError(session.Send("ack")) - - return nil, nil -} diff --git a/integration/integration.go b/integration/integration.go index bc1adb804..debc71d29 100644 --- a/integration/integration.go +++ b/integration/integration.go @@ -25,7 +25,6 @@ import ( smartclient "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc/node" "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/monitoring" "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/orion" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/weaver" "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" "github.com/onsi/ginkgo/v2" @@ -89,7 +88,6 @@ func New(startPort int, path string, topologies ...api.Topology) (*Infrastructur Topologies: topologies, PlatformFactories: map[string]api.PlatformFactory{ "fabric": fabric.NewPlatformFactory(), - "weaver": weaver.NewPlatformFactory(), "monitoring": monitoring.NewPlatformFactory(), "orion": orion.NewPlatformFactory(), }, diff --git a/integration/nwo/cmd/artifactgen/gen.go b/integration/nwo/cmd/artifactgen/gen.go index a5bd86272..4e94157c7 100644 --- a/integration/nwo/cmd/artifactgen/gen.go +++ b/integration/nwo/cmd/artifactgen/gen.go @@ -17,8 +17,6 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric" "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc" "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/orion" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/weaver" - "gopkg.in/yaml.v2" ) @@ -110,16 +108,6 @@ func gen(args []string) error { return errors.Wrapf(err, "failed unmarshalling topology file [%s]", topologyFile) } t2 = append(t2, top) - case weaver.TopologyName: - top := weaver.NewTopology() - r, err := yaml.Marshal(t.Topologies[i]) - if err != nil { - return errors.Wrapf(err, "failed remarshalling topology configuration [%s]", topologyFile) - } - if err := yaml.Unmarshal(r, top); err != nil { - return errors.Wrapf(err, "failed unmarshalling topology file [%s]", topologyFile) - } - t2 = append(t2, top) case orion.TopologyName: top := orion.NewTopology() r, err := yaml.Marshal(t.Topologies[i]) diff --git a/integration/nwo/common/pkcs11/pkcs11.go b/integration/nwo/common/pkcs11/pkcs11.go index 65114049b..1c0d69c9f 100644 --- a/integration/nwo/common/pkcs11/pkcs11.go +++ b/integration/nwo/common/pkcs11/pkcs11.go @@ -16,9 +16,9 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" "github.com/hyperledger-labs/fabric-smart-client/platform/common/utils" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/config" - "github.com/hyperledger/fabric/bccsp" - "github.com/hyperledger/fabric/bccsp/pkcs11" - "github.com/hyperledger/fabric/bccsp/sw" + "github.com/hyperledger/fabric-lib-go/bccsp" + "github.com/hyperledger/fabric-lib-go/bccsp/pkcs11" + "github.com/hyperledger/fabric-lib-go/bccsp/sw" pkcs11lib "github.com/miekg/pkcs11" "github.com/pkg/errors" ) diff --git a/integration/nwo/fabric/chaincode/base/main.go b/integration/nwo/fabric/chaincode/base/main.go index 78f27cafb..4a0e4a3cc 100644 --- a/integration/nwo/fabric/chaincode/base/main.go +++ b/integration/nwo/fabric/chaincode/base/main.go @@ -10,18 +10,18 @@ import ( "fmt" "os" - "github.com/hyperledger/fabric-chaincode-go/shim" - pb "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-chaincode-go/v2/shim" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" ) type Chaincode struct{} -func (t *Chaincode) Init(stub shim.ChaincodeStubInterface) pb.Response { +func (t *Chaincode) Init(stub shim.ChaincodeStubInterface) *pb.Response { fmt.Println("Init...") return shim.Success(nil) } -func (t *Chaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response { +func (t *Chaincode) Invoke(stub shim.ChaincodeStubInterface) *pb.Response { function, params := stub.GetFunctionAndParameters() fmt.Printf("Invoke function %s with params %v\n", function, params) return shim.Success(nil) diff --git a/integration/nwo/fabric/identity/identity.go b/integration/nwo/fabric/identity/identity.go index bc664b7bc..9b71b385c 100644 --- a/integration/nwo/fabric/identity/identity.go +++ b/integration/nwo/fabric/identity/identity.go @@ -9,7 +9,7 @@ package identity import ( "path/filepath" - "github.com/hyperledger/fabric/bccsp/sw" + "github.com/hyperledger/fabric-lib-go/bccsp/sw" "github.com/hyperledger/fabric/msp" "github.com/pkg/errors" ) @@ -27,7 +27,7 @@ type Identity interface { // array of bytes; it is needed to sign the commands transmitted to // the prover peer service. type SigningIdentity interface { - Identity //extends Identity + Identity // extends Identity Sign(msg []byte) ([]byte, error) } diff --git a/integration/nwo/fabric/network/checks.go b/integration/nwo/fabric/network/checks.go index 6506e0418..9344ba170 100644 --- a/integration/nwo/fabric/network/checks.go +++ b/integration/nwo/fabric/network/checks.go @@ -148,19 +148,10 @@ func (n *Network) CheckTopologyFSCNodes() (users map[string]int, userSpecs map[s func (n *Network) CheckTopologyOrgs(users map[string]int, userSpecs map[string][]topology.UserSpec) { for _, organization := range n.Organizations { organization.Users += users[organization.Name] - if n.topology.Weaver { - organization.UserSpecs = append(userSpecs[organization.Name], - topology.UserSpec{Name: "User1"}, - topology.UserSpec{Name: "User2"}, - topology.UserSpec{Name: "Relay"}, - topology.UserSpec{Name: "RelayAdmin"}, - ) - } else { - organization.UserSpecs = append(userSpecs[organization.Name], - topology.UserSpec{Name: "User1"}, - topology.UserSpec{Name: "User2"}, - ) - } + organization.UserSpecs = append(userSpecs[organization.Name], + topology.UserSpec{Name: "User1"}, + topology.UserSpec{Name: "User2"}, + ) } } diff --git a/integration/nwo/fabric/network/configblock.go b/integration/nwo/fabric/network/configblock.go index 1a1503e51..c4cd01918 100644 --- a/integration/nwo/fabric/network/configblock.go +++ b/integration/nwo/fabric/network/configblock.go @@ -14,9 +14,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/commands" "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/topology" "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/msp" - protosorderer "github.com/hyperledger/fabric-protos-go/orderer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/hyperledger/fabric/protoutil" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" @@ -299,51 +297,3 @@ func UnmarshalBlockFromFile(blockFile string) *common.Block { // ConsensusMetadataMutator receives ConsensusType.Metadata and mutates it. type ConsensusMetadataMutator func([]byte) []byte - -// MSPMutator receives FabricMSPConfig and mutates it. -type MSPMutator func(config msp.FabricMSPConfig) msp.FabricMSPConfig - -// UpdateConsensusMetadata executes a config update that updates the consensus -// metadata according to the given ConsensusMetadataMutator. -func UpdateConsensusMetadata(network *Network, peer *topology.Peer, orderer *topology.Orderer, channel string, mutateMetadata ConsensusMetadataMutator) { - config := GetConfig(network, peer, orderer, channel) - updatedConfig := proto.Clone(config).(*common.Config) - - consensusTypeConfigValue := updatedConfig.ChannelGroup.Groups["Orderer"].Values["ConsensusType"] - consensusTypeValue := &protosorderer.ConsensusType{} - err := proto.Unmarshal(consensusTypeConfigValue.Value, consensusTypeValue) - Expect(err).NotTo(HaveOccurred()) - - consensusTypeValue.Metadata = mutateMetadata(consensusTypeValue.Metadata) - - updatedConfig.ChannelGroup.Groups["Orderer"].Values["ConsensusType"] = &common.ConfigValue{ - ModPolicy: "Admins", - Value: protoutil.MarshalOrPanic(consensusTypeValue), - } - - UpdateOrdererConfig(network, orderer, channel, config, updatedConfig, peer, orderer) -} - -func UpdateOrdererMSP(network *Network, peer *topology.Peer, orderer *topology.Orderer, channel, orgID string, mutateMSP MSPMutator) { - config := GetConfig(network, peer, orderer, channel) - updatedConfig := proto.Clone(config).(*common.Config) - - // Unpack the MSP config - rawMSPConfig := updatedConfig.ChannelGroup.Groups["Orderer"].Groups[orgID].Values["MSP"] - mspConfig := &msp.MSPConfig{} - err := proto.Unmarshal(rawMSPConfig.Value, mspConfig) - Expect(err).NotTo(HaveOccurred()) - - fabricConfig := &msp.FabricMSPConfig{} - err = proto.Unmarshal(mspConfig.Config, fabricConfig) - Expect(err).NotTo(HaveOccurred()) - - // Mutate it as we are asked - *fabricConfig = mutateMSP(*fabricConfig) - - // Wrap it back into the config - mspConfig.Config = protoutil.MarshalOrPanic(fabricConfig) - rawMSPConfig.Value = protoutil.MarshalOrPanic(mspConfig) - - UpdateOrdererConfig(network, orderer, channel, config, updatedConfig, peer, orderer) -} diff --git a/integration/nwo/fabric/network/deploy.go b/integration/nwo/fabric/network/deploy.go index 79157c835..dcef565f6 100644 --- a/integration/nwo/fabric/network/deploy.go +++ b/integration/nwo/fabric/network/deploy.go @@ -13,7 +13,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/commands" "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/topology" - "github.com/hyperledger/fabric-protos-go/peer/lifecycle" + "github.com/hyperledger/fabric-protos-go-apiv2/peer/lifecycle" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" "github.com/onsi/gomega/gexec" diff --git a/integration/nwo/fabric/network/orderer_client.go b/integration/nwo/fabric/network/orderer_client.go index 32854d4eb..f12bc8ccb 100644 --- a/integration/nwo/fabric/network/orderer_client.go +++ b/integration/nwo/fabric/network/orderer_client.go @@ -16,8 +16,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/orderer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + "github.com/hyperledger/fabric-protos-go-apiv2/orderer" "github.com/pkg/errors" ) diff --git a/integration/nwo/fabric/network/update.go b/integration/nwo/fabric/network/update.go index 8156306c7..4400fa51f 100644 --- a/integration/nwo/fabric/network/update.go +++ b/integration/nwo/fabric/network/update.go @@ -11,7 +11,7 @@ import ( "fmt" "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - cb "github.com/hyperledger/fabric-protos-go/common" + cb "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" ) diff --git a/integration/nwo/fabric/packager/golang/platform.go b/integration/nwo/fabric/packager/golang/platform.go index 312bf0eff..93c9a36d1 100644 --- a/integration/nwo/fabric/packager/golang/platform.go +++ b/integration/nwo/fabric/packager/golang/platform.go @@ -24,7 +24,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/packager/ccmetadata" "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/packager/replacer" - pb "github.com/hyperledger/fabric-protos-go/peer" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/core/chaincode/platforms/util" "github.com/pkg/errors" ) diff --git a/integration/nwo/fabric/topology/topology.go b/integration/nwo/fabric/topology/topology.go index 2fdc941aa..4f51a12c4 100755 --- a/integration/nwo/fabric/topology/topology.go +++ b/integration/nwo/fabric/topology/topology.go @@ -38,7 +38,6 @@ type Topology struct { FabTokenCCSupport bool `yaml:"fabtokenccsupport,omitempty"` GRPCLogging bool `yaml:"grpcLogging,omitempty"` NodeOUs bool `yaml:"nodeous,omitempty"` - Weaver bool `yaml:"weaver,omitempty"` LogPeersToFile bool `yaml:"logPeersToFile,omitempty"` LogOrderersToFile bool `yaml:"logOrderersToFile,omitempty"` TLSEnabled bool `yaml:"tlsEnabled,omitempty"` diff --git a/integration/nwo/fabric/topology/weaver.go b/integration/nwo/fabric/topology/weaver.go deleted file mode 100644 index c8c06b978..000000000 --- a/integration/nwo/fabric/topology/weaver.go +++ /dev/null @@ -1,11 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package topology - -func (t *Topology) EnableWeaver() { - t.Weaver = true -} diff --git a/integration/nwo/weaver/config.go b/integration/nwo/weaver/config.go deleted file mode 100644 index 144274165..000000000 --- a/integration/nwo/weaver/config.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -type ( - Admin struct { - Name string `json:"name"` - Secret string `json:"secret"` - } - - Attr struct { - Name string `json:"name"` - Value string `json:"value"` - Ecert bool `json:"ecert"` - } - - Relay struct { - Name string `json:"name"` - Affiliation string `json:"affiliation"` - Role string `json:"role"` - Attrs []Attr `json:"attrs"` - } - - Config struct { - Admin Admin `json:"admin"` - Relay Relay `json:"relay"` - MspId string `json:"mspId"` - CaUrl string `json:"caUrl"` - } -) diff --git a/integration/nwo/weaver/docker.go b/integration/nwo/weaver/docker.go deleted file mode 100644 index 8d58285d8..000000000 --- a/integration/nwo/weaver/docker.go +++ /dev/null @@ -1,219 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -import ( - "bufio" - "context" - "fmt" - - "github.com/docker/docker/api/types/container" - "github.com/docker/docker/api/types/mount" - "github.com/docker/docker/api/types/network" - "github.com/docker/docker/client" - "github.com/docker/go-connections/nat" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/common/docker" - "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" - . "github.com/onsi/gomega" -) - -func (p *Platform) RunRelayServer(name string, serverConfigPath, port string) { - ctx := context.Background() - cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) - Expect(err).ToNot(HaveOccurred()) - - d, err := docker.GetInstance() - Expect(err).NotTo(HaveOccurred()) - - net, err := d.Client.NetworkInfo(p.NetworkID) - Expect(err).ToNot(HaveOccurred()) - - hostname := "relay-" + name - - driverName := "driver-" + name - - var links []string - - if name == "beta" { - links = []string{"relay-alpha:relay-alpha"} - } - - links = append(links, fmt.Sprintf("%s:%s", driverName, driverName)) - - resp, err := cli.ContainerCreate(ctx, &container.Config{ - Hostname: hostname, - Image: RelayServerImage, - Tty: false, - Env: []string{ - "DEBUG=true", - "RELAY_CONFIG=/opt/relay/config/server.toml", - }, - ExposedPorts: nat.PortSet{ - nat.Port(port + "/tcp"): struct{}{}, - }, - }, &container.HostConfig{ - Links: links, - Mounts: []mount.Mount{ - { - Type: mount.TypeBind, - // Absolute path to - Source: serverConfigPath, - Target: "/opt/relay/config/server.toml", - }, - }, - PortBindings: nat.PortMap{ - nat.Port(port + "/tcp"): []nat.PortBinding{ - { - HostIP: "127.0.0.1", - HostPort: port, - }, - }, - }, - }, &network.NetworkingConfig{ - EndpointsConfig: map[string]*network.EndpointSettings{ - p.NetworkID: { - NetworkID: net.ID, - }, - }, - }, nil, hostname) - Expect(err).ToNot(HaveOccurred()) - - Expect(cli.NetworkConnect(context.Background(), p.NetworkID, resp.ID, &network.EndpointSettings{ - NetworkID: p.NetworkID, - })).ToNot(HaveOccurred()) - - err = cli.ContainerStart(ctx, resp.ID, container.StartOptions{}) - Expect(err).ToNot(HaveOccurred()) - - dockerLogger := logging.MustGetLogger("weaver.container." + hostname) - go func() { - reader, err := cli.ContainerLogs(context.Background(), resp.ID, container.LogsOptions{ - ShowStdout: true, - ShowStderr: true, - Follow: true, - Timestamps: false, - }) - Expect(err).ToNot(HaveOccurred()) - defer reader.Close() - - scanner := bufio.NewScanner(reader) - for scanner.Scan() { - dockerLogger.Debugf("%s", scanner.Text()) - } - }() - -} - -func (p *Platform) RunRelayFabricDriver( - networkName, - relayHost, relayPort, - driverHost, driverPort, - interopChaincode, - ccpPath, configPath, walletPath string) { - ctx := context.Background() - cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) - Expect(err).ToNot(HaveOccurred()) - - hostname := "driver-" + networkName - - d, err := docker.GetInstance() - Expect(err).NotTo(HaveOccurred()) - - net, err := d.Client.NetworkInfo(p.NetworkID) - Expect(err).ToNot(HaveOccurred()) - - localIP, err := d.LocalIP(p.NetworkID) - Expect(err).ToNot(HaveOccurred()) - - resp, err := cli.ContainerCreate(ctx, &container.Config{ - Hostname: hostname, - Image: FabricDriverImage, - Tty: false, - Env: []string{ - "NETWORK_NAME=" + networkName, - "RELAY_ENDPOINT=" + relayHost + ":" + relayPort, - "DRIVER_ENDPOINT=" + driverHost + ":" + driverPort, - "DRIVER_CONFIG=/config.json", - "CONNECTION_PROFILE=/ccp.json", - "INTEROP_CHAINCODE=" + interopChaincode, - "local=false", - // "GRPC_TRACE=all", - // "GRPC_VERBOSITY=DEBUG", - // "GRPC_NODE_VERBOSITY=DEBUG", - // "GRPC_NODE_TRACE=connectivity_state,server,server_call,subchannel", - // "NODE_OPTIONS=--tls-max-v1.2", - // "HFC_LOGGING={\"debug\":\"console\",\"info\":\"console\"}", - }, - Cmd: []string{ - "npm", "run", "dev", "--verbose=true", - // "/bin/sh", "run.sh", - }, - ExposedPorts: nat.PortSet{ - nat.Port(driverPort + "/tcp"): struct{}{}, - nat.Port(relayPort + "/tcp"): struct{}{}, - }, - }, &container.HostConfig{ - ExtraHosts: []string{fmt.Sprintf("fabric:%s", localIP)}, - // Absolute path to - Mounts: []mount.Mount{ - { - Type: mount.TypeBind, - Source: ccpPath, - Target: "/ccp.json", - }, - { - Type: mount.TypeBind, - Source: walletPath, - Target: "/fabric-driver/wallet-" + networkName, - }, - { - Type: mount.TypeBind, - Source: configPath, - Target: "/config.json", - }, - }, - PortBindings: nat.PortMap{ - nat.Port(driverPort + "/tcp"): []nat.PortBinding{ - { - HostIP: "127.0.0.1", - HostPort: driverPort, - }, - }, - }, - }, &network.NetworkingConfig{ - EndpointsConfig: map[string]*network.EndpointSettings{ - p.NetworkID: { - NetworkID: net.ID, - }, - }, - }, nil, hostname) - Expect(err).ToNot(HaveOccurred()) - - Expect(cli.NetworkConnect(context.Background(), p.NetworkID, resp.ID, &network.EndpointSettings{ - NetworkID: p.NetworkID, - })).ToNot(HaveOccurred()) - - err = cli.ContainerStart(ctx, resp.ID, container.StartOptions{}) - Expect(err).ToNot(HaveOccurred()) - - dockerLogger := logging.MustGetLogger("weaver.fabric.driver.container." + hostname) - go func() { - reader, err := cli.ContainerLogs(context.Background(), resp.ID, container.LogsOptions{ - ShowStdout: true, - ShowStderr: true, - Follow: true, - Timestamps: false, - }) - Expect(err).ToNot(HaveOccurred()) - defer reader.Close() - - scanner := bufio.NewScanner(reader) - for scanner.Scan() { - dockerLogger.Debugf("%s", scanner.Text()) - } - }() -} diff --git a/integration/nwo/weaver/identity.go b/integration/nwo/weaver/identity.go deleted file mode 100644 index a057b35e1..000000000 --- a/integration/nwo/weaver/identity.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -// {"credentials":{"certificate":"-----BEGIN CERTIFICATE-----\nMIICkDCCAjegAwIBAgIUOpqn9H6PU36pShxndsIuTuoCFKswCgYIKoZIzj0EAwIw\ncjELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH\nEwZEdXJoYW0xGjAYBgNVBAoTEW9yZzEubmV0d29yazEuY29tMR0wGwYDVQQDExRj\nYS5vcmcxLm5ldHdvcmsxLmNvbTAeFw0yMDA4MTEwNjI5MDBaFw0yMTA4MTEwNjM0\nMDBaMEIxMDANBgNVBAsTBmNsaWVudDALBgNVBAsTBG9yZzEwEgYDVQQLEwtkZXBh\ncnRtZW50MTEOMAwGA1UEAxMFcmVsYXkwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC\nAAR2PO870eeQI0ZOmBNpK5nj+1Q+lUkRveOIlV7YQ8ZT5R7UJuC7fSBklxQKVvnr\nKGj8B5iWMJ3nQW6hcwhOkIEJo4HaMIHXMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMB\nAf8EAjAAMB0GA1UdDgQWBBT8vkQ+qstam5E0BqjRpjeHBt6AfTAfBgNVHSMEGDAW\ngBTWD60+eCHbDyD33PWbCxVuQqMAqTB3BggqAwQFBgcIAQRreyJhdHRycyI6eyJo\nZi5BZmZpbGlhdGlvbiI6Im9yZzEuZGVwYXJ0bWVudDEiLCJoZi5FbnJvbGxtZW50\nSUQiOiJyZWxheSIsImhmLlR5cGUiOiJjbGllbnQiLCJyZWxheSI6InRydWUifX0w\nCgYIKoZIzj0EAwIDRwAwRAIgXKrl7VBQwCqyVzWaerCHJZ0avzLnV4+sNfWDX3Ua\n3b0CIHvBEHAo0A5poBFCrYvJy2J7ql8JULE88dzUMCa/QlQJ\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----\r\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgSikOHkFWvw4057jO\r\nXAbpzvx7W+kOaCzK4qWZqO6IATuhRANCAAR2PO870eeQI0ZOmBNpK5nj+1Q+lUkR\r\nveOIlV7YQ8ZT5R7UJuC7fSBklxQKVvnrKGj8B5iWMJ3nQW6hcwhOkIEJ\r\n-----END PRIVATE KEY-----\r\n"},"mspId":"Org1MSP","type":"X.509","version":1} - -type Credentials struct { - Certificate string `json:"certificate"` - PrivateKey string `json:"privateKey"` -} - -type Identity struct { - Credentials Credentials `json:"credentials"` - MspId string `json:"mspId"` - Type string `json:"type"` - Version int `json:"version"` -} diff --git a/integration/nwo/weaver/interop/accesscontrol.go b/integration/nwo/weaver/interop/accesscontrol.go deleted file mode 100644 index 3db6f1b14..000000000 --- a/integration/nwo/weaver/interop/accesscontrol.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package interop - -type ( - Rule struct { - Principal string `json:"principal,omitempty"` - PrincipalType string `json:"principalType,omitempty"` - Resource string `json:"resource,omitempty"` - Read bool `json:"read,omitempty"` - } - - AccessControl struct { - SecurityDomain string `json:"securityDomain,omitempty"` - Rules []*Rule `json:"rules,omitempty"` - } -) diff --git a/integration/nwo/weaver/interop/membership.go b/integration/nwo/weaver/interop/membership.go deleted file mode 100644 index 0429d0201..000000000 --- a/integration/nwo/weaver/interop/membership.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package interop - -type ( - Member struct { - Type string `json:"type,omitempty"` - Value string `json:"value,omitempty"` - Chain []string `json:"chain,omitempty"` - } - - Membership struct { - SecurityDomain string `json:"securityDomain,omitempty"` - Members map[string]*Member `json:"members,omitempty"` - } -) diff --git a/integration/nwo/weaver/interop/verificationpolicy.go b/integration/nwo/weaver/interop/verificationpolicy.go deleted file mode 100644 index c8afa1a73..000000000 --- a/integration/nwo/weaver/interop/verificationpolicy.go +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package interop - -type ( - Policy struct { - Type string `json:"type,omitempty"` - Criteria []string `json:"criteria,omitempty"` - } - - Identifier struct { - Pattern string `json:"pattern,omitempty"` - Policy *Policy `json:"policy,omitempty"` - } - - VerificationPolicy struct { - SecurityDomain string `json:"securityDomain,omitempty"` - Identifiers []*Identifier `json:"identifiers,omitempty"` - } -) diff --git a/integration/nwo/weaver/interopcc.go b/integration/nwo/weaver/interopcc.go deleted file mode 100644 index a8bd351e4..000000000 --- a/integration/nwo/weaver/interopcc.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -import ( - "path/filepath" - "sync" - - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/topology" -) - -var ( - packageLock sync.Mutex - packagePath string - cleanupFunc = func() {} -) - -func (p *Platform) InteropChaincodeFile() string { - return filepath.Join( - p.RelayDir(), - "interop.tar.gz", - ) -} - -func (p *Platform) interopccSetup(relay *RelayServer, cc *topology.ChannelChaincode) (*topology.ChannelChaincode, error) { - cc.Chaincode.Ctor = `{"Args":["initLedger","applicationCCID"]}` - - packageLock.Lock() - defer packageLock.Unlock() - - if packagePath != "" { - cc.Chaincode.PackageFile = packagePath - return cc, nil - } - - path, cleanup, err := packageChaincode() - if err != nil { - return nil, err - } - - cc.Chaincode.PackageFile = path - - packagePath = path - cleanupFunc = cleanup - - return cc, nil -} - -func (p *Platform) PrepareInteropChaincode(relay *RelayServer) (*topology.ChannelChaincode, error) { - orgs := p.Fabric(relay).PeerOrgs() - - policy := "OR (" - for i, org := range orgs { - if i > 0 { - policy += "," - } - policy += "'" + org.Name + "MSP.member'" - } - policy += ")" - - var peers []string - for _, org := range orgs { - for _, peer := range p.Fabric(relay).Topology().Peers { - if peer.Organization == org.Name { - peers = append(peers, peer.Name) - } - } - } - - return p.interopccSetup(relay, &topology.ChannelChaincode{ - Chaincode: topology.Chaincode{ - Name: relay.InteropChaincode.Namespace, - Version: "Version-0.0", - Sequence: "1", - InitRequired: true, - Path: relay.InteropChaincode.Path, - Lang: "golang", - Label: relay.InteropChaincode.Namespace, - Policy: policy, - SignaturePolicy: policy, - }, - Channel: relay.InteropChaincode.Channel, - Peers: peers, - }) -} diff --git a/integration/nwo/weaver/platform.go b/integration/nwo/weaver/platform.go deleted file mode 100755 index 7971bfaf0..000000000 --- a/integration/nwo/weaver/platform.go +++ /dev/null @@ -1,620 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -import ( - "bytes" - "encoding/json" - "fmt" - "io" - "os" - "path/filepath" - "strconv" - "strings" - "text/template" - "time" - - api2 "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/api" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/common" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/common/docker" - fabric2 "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/network" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/topology" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/topology/fabric" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/weaver/interop" - . "github.com/onsi/gomega" - "github.com/tedsuo/ifrit/grouper" -) - -const ( - RelayServerImage = "hyperledger-labs/weaver-relay-server:latest" - FabricDriverImage = "hyperledger-labs/weaver-fabric-driver:latest" - // FabricDriverImage = "fabric-driver:latest" -) - -var RequiredImages = []string{ - RelayServerImage, - FabricDriverImage, -} - -type Builder interface { - Build(path string) string -} - -type FabricNetwork interface { - DeployChaincode(chaincode *topology.ChannelChaincode) - DefaultIdemixOrgMSPDir() string - Topology() *topology.Topology - PeerChaincodeAddress(peerName string) string - PeerOrgs() []*fabric.Org - OrgMSPID(orgName string) string - PeersByOrg(fabricHost string, orgName string, includeAll bool) []*fabric.Peer - UserByOrg(organization string, user string) *fabric.User - UsersByOrg(organization string) []*fabric.User - Orderers() []*fabric.Orderer - Channels() []*fabric.Channel - InvokeChaincode(cc *topology.ChannelChaincode, method string, args ...[]byte) []byte - ConnectionProfile(name string, ca bool) *network.ConnectionProfile -} - -type platformFactory struct{} - -func NewPlatformFactory() *platformFactory { - return &platformFactory{} -} - -func (f platformFactory) Name() string { - return TopologyName -} - -func (f platformFactory) New(registry api2.Context, t api2.Topology, builder api2.Builder) api2.Platform { - return NewPlatform(registry, t, builder) -} - -type Platform struct { - Context api2.Context - Topology *Topology - Builder api2.Builder - EventuallyTimeout time.Duration - - NetworkID string -} - -func NewPlatform(ctx api2.Context, t api2.Topology, builder api2.Builder) *Platform { - return &Platform{ - Context: ctx, - Topology: t.(*Topology), - Builder: builder, - EventuallyTimeout: 10 * time.Minute, - NetworkID: common.UniqueName(), - } -} - -func (p *Platform) Name() string { - return TopologyName -} - -func (p *Platform) Type() string { - return TopologyName -} - -func (p *Platform) GenerateConfigTree() { - for _, relay := range p.Topology.Relays { - relay.Port = p.Context.ReservePort() - for _, driver := range relay.Drivers { - driver.Port = p.Context.ReservePort() - } - } -} - -func (p *Platform) GenerateArtifacts() { - for _, relay := range p.Topology.Relays { - p.generateRelayServerTOML(relay) - p.generateFabricDriverConfigFiles(relay) - p.generateInteropChaincodeConfigFiles(relay) - } - p.generateFabricExtension() - p.copyInteropChaincode() -} - -func (p *Platform) Load() { -} - -func (p *Platform) Members() []grouper.Member { - return nil -} - -func (p *Platform) PostRun(bool) { - // getting our docker helper, check required images exists and launch a docker network - d, err := docker.GetInstance() - Expect(err).NotTo(HaveOccurred()) - - err = d.CheckImagesExist(RequiredImages...) - Expect(err).NotTo(HaveOccurred()) - - err = d.CreateNetwork(p.NetworkID) - Expect(err).NotTo(HaveOccurred()) - - for _, relay := range p.Topology.Relays { - cc, err := p.PrepareInteropChaincode(relay) - Expect(err).NotTo(HaveOccurred()) - - fabric := p.Fabric(relay) - fabric.DeployChaincode(cc) - } - - for _, destinationRelay := range p.Topology.Relays { - cc, err := p.PrepareInteropChaincode(destinationRelay) - Expect(err).NotTo(HaveOccurred()) - - destinationFabric := p.Fabric(destinationRelay) - - for _, sourceRelay := range p.Topology.Relays { - if sourceRelay.Name == destinationRelay.Name { - continue - } - raw, err := os.ReadFile(p.RelayServerInteropAccessControl(destinationRelay, sourceRelay)) - Expect(err).NotTo(HaveOccurred()) - destinationFabric.InvokeChaincode(cc, "CreateAccessControlPolicy", raw) - - raw, err = os.ReadFile(p.RelayServerInteropVerificationPolicy(sourceRelay)) - Expect(err).NotTo(HaveOccurred()) - destinationFabric.InvokeChaincode(cc, "CreateVerificationPolicy", raw) - - raw, err = os.ReadFile(p.RelayServerInteropMembership(sourceRelay)) - Expect(err).NotTo(HaveOccurred()) - destinationFabric.InvokeChaincode(cc, "CreateMembership", raw) - } - } - - for _, relay := range p.Topology.Relays { - for _, driver := range relay.Drivers { - p.RunRelayFabricDriver( - relay.FabricTopologyName, - relay.Hostname, strconv.Itoa(int(relay.Port)), - driver.Hostname, strconv.Itoa(int(driver.Port)), - relay.InteropChaincode.Label, - p.FabricDriverConnectionProfilePath(relay), - p.FabricDriverConfigPath(relay), - p.FabricDriverWalletDir(relay), - ) - } - - time.Sleep(time.Second * 2) - - p.RunRelayServer( - strings.Replace(relay.Name, "Fabric_", "", -1), - p.RelayServerConfigPath(relay), - strconv.Itoa(int(relay.Port)), - ) - - time.Sleep(time.Second * 2) - } -} - -func (p *Platform) Cleanup() { - cleanupFunc() - - d, err := docker.GetInstance() - Expect(err).NotTo(HaveOccurred()) - - // remove all weaver related containers - err = d.Cleanup(p.NetworkID, func(name string) bool { - return strings.HasPrefix(name, "/driver") || strings.HasPrefix(name, "/relay") - }) - Expect(err).NotTo(HaveOccurred()) -} - -func (p *Platform) RelayServerDir(relay *RelayServer) string { - return filepath.Join( - p.Context.RootDir(), - "weaver", - "relay", - "server", - relay.Name, - ) -} - -func (p *Platform) RelayServerConfigPath(relay *RelayServer) string { - return filepath.Join( - p.RelayServerDir(relay), - "server.toml", - ) -} - -func (p *Platform) FabricDriverDir(relay *RelayServer) string { - return filepath.Join( - p.Context.RootDir(), - "weaver", - "relay", - "fabric-driver", - relay.Name, - ) -} - -func (p *Platform) FabricDriverConnectionProfilePath(relay *RelayServer) string { - return filepath.Join( - p.FabricDriverDir(relay), - "cp.json", - ) -} - -func (p *Platform) FabricDriverConfigPath(relay *RelayServer) string { - return filepath.Join( - p.FabricDriverDir(relay), - "config.json", - ) -} - -func (p *Platform) FabricDriverWalletDir(relay *RelayServer) string { - return filepath.Join( - p.Context.RootDir(), - "weaver", - "relay", - "fabric-driver", - relay.Name, - "wallet-"+relay.FabricTopologyName, - ) -} - -func (p *Platform) FabricDriverWalletId(relay *RelayServer, id string) string { - return filepath.Join( - p.FabricDriverWalletDir(relay), - id+".id", - ) -} - -func (p *Platform) RelayServerInteropDir(relay *RelayServer) string { - return filepath.Join( - p.Context.RootDir(), - "weaver", - "relay", - "server", - relay.Name, - "interop-chaincode", - ) -} - -func (p *Platform) RelayServerInteropAccessControl(destination *RelayServer, source *RelayServer) string { - return filepath.Join( - p.RelayServerInteropDir(destination), - fmt.Sprintf("access_control_%s.json", source.Name), - ) -} - -func (p *Platform) RelayServerInteropMembership(relay *RelayServer) string { - return filepath.Join( - p.RelayServerInteropDir(relay), - "membership.json", - ) -} - -func (p *Platform) RelayServerInteropVerificationPolicy(relay *RelayServer) string { - return filepath.Join( - p.RelayServerInteropDir(relay), - "verification_policy.json", - ) -} - -func (p *Platform) RelayDir() string { - return filepath.Join( - p.Context.RootDir(), - "weaver", - "relay", - ) -} - -func (p *Platform) Fabric(relay *RelayServer) FabricNetwork { - return p.Context.PlatformByName(relay.FabricTopologyName).(FabricNetwork) -} - -func (p *Platform) generateRelayServerTOML(relay *RelayServer) { - err := os.MkdirAll(p.RelayServerDir(relay), 0o755) - Expect(err).NotTo(HaveOccurred()) - - relayServerFile, err := os.Create(p.RelayServerConfigPath(relay)) - Expect(err).NotTo(HaveOccurred()) - defer relayServerFile.Close() - - var relays []*RelayServer - for _, r := range p.Topology.Relays { - if r != relay { - relays = append(relays, r) - } - } - - t, err := template.New("relay_server").Funcs(template.FuncMap{ - "Name": func() string { return relay.FabricTopologyName }, - "Port": func() uint16 { return relay.Port }, - "Hostname": func() string { return relay.Hostname }, - "Networks": func() []*Network { return relay.Networks }, - "Drivers": func() []*Driver { return relay.Drivers }, - "Relays": func() []*RelayServer { return relays }, - }).Parse(RelayServerTOML) - Expect(err).NotTo(HaveOccurred()) - - err = t.Execute(io.MultiWriter(relayServerFile), p) - Expect(err).NotTo(HaveOccurred()) -} - -func (p *Platform) generateFabricDriverConfigFiles(relay *RelayServer) { - p.generateFabricDriverCPFile(relay) - p.generateFabricDriverConfigFile(relay) - p.generateFabricDriverWallet(relay) -} - -func (p *Platform) generateFabricDriverCPFile(relay *RelayServer) { - cp := p.Fabric(relay).ConnectionProfile(relay.Name, true) - cp.Client = network.Client{ - Organization: relay.Organization, - Connection: network.Connection{ - Timeout: network.Timeout{ - Peer: map[string]string{ - "endorser": "300", - }, - }, - }, - } - - raw, err := json.MarshalIndent(cp, "", " ") - Expect(err).NotTo(HaveOccurred()) - - Expect(os.MkdirAll(p.FabricDriverDir(relay), 0o755)).NotTo(HaveOccurred()) - Expect(os.WriteFile(p.FabricDriverConnectionProfilePath(relay), raw, 0o755)).NotTo(HaveOccurred()) -} - -func (p *Platform) generateFabricDriverConfigFile(relay *RelayServer) { - fabric := p.Fabric(relay) - relayUser := fabric.UserByOrg(relay.Organization, "Relay") - relayAdmin := fabric.UserByOrg(relay.Organization, "RelayAdmin") - config := &Config{ - Admin: Admin{ - Name: relayAdmin.Name, - Secret: "adminpw", - }, - Relay: Relay{ - Name: relayUser.Name, - Affiliation: "", - Role: "client", - Attrs: []Attr{ - { - Name: "relay", - Value: "true", - Ecert: true, - }, - }, - }, - MspId: fabric.OrgMSPID(relay.Organization), - CaUrl: "", - } - raw, err := json.MarshalIndent(config, "", " ") - Expect(err).NotTo(HaveOccurred()) - Expect(os.MkdirAll(p.FabricDriverDir(relay), 0o755)).NotTo(HaveOccurred()) - Expect(os.WriteFile(p.FabricDriverConfigPath(relay), raw, 0o755)).NotTo(HaveOccurred()) -} - -func (p *Platform) generateFabricDriverWallet(relay *RelayServer) { - fabric := p.Fabric(relay) - - // User - relayUser := fabric.UserByOrg(relay.Organization, "Relay") - cert, err := os.ReadFile(relayUser.Cert) - Expect(err).NotTo(HaveOccurred()) - key, err := os.ReadFile(relayUser.Key) - Expect(err).NotTo(HaveOccurred()) - - identity := &Identity{ - Credentials: Credentials{ - Certificate: string(cert), - PrivateKey: string(key), - }, - MspId: fabric.OrgMSPID(relay.Organization), - Type: "X.509", - Version: 1, - } - raw, err := json.MarshalIndent(identity, "", " ") - Expect(err).NotTo(HaveOccurred()) - Expect(os.MkdirAll(p.FabricDriverWalletDir(relay), 0o755)).NotTo(HaveOccurred()) - Expect(os.WriteFile(p.FabricDriverWalletId(relay, relayUser.Name), raw, 0o755)).NotTo(HaveOccurred()) - - // Admin - relayAdmin := fabric.UserByOrg(relay.Organization, "RelayAdmin") - cert, err = os.ReadFile(relayAdmin.Cert) - Expect(err).NotTo(HaveOccurred()) - key, err = os.ReadFile(relayAdmin.Key) - Expect(err).NotTo(HaveOccurred()) - - identity = &Identity{ - Credentials: Credentials{ - Certificate: string(cert), - PrivateKey: string(key), - }, - MspId: fabric.OrgMSPID(relay.Organization), - Type: "X.509", - Version: 1, - } - raw, err = json.MarshalIndent(identity, "", " ") - Expect(err).NotTo(HaveOccurred()) - Expect(os.MkdirAll(p.FabricDriverWalletDir(relay), 0o755)).NotTo(HaveOccurred()) - Expect(os.WriteFile(p.FabricDriverWalletId(relay, relayAdmin.Name), raw, 0o755)).NotTo(HaveOccurred()) -} - -func (p *Platform) generateInteropChaincodeConfigFiles(relay *RelayServer) { - p.generateInteropChaincodeAccessControlFile(relay) - p.generateInteropChaincodeMembershipFile(relay) - p.generateInteropChaincodeVerificationPolicyFile(relay) -} - -func (p *Platform) generateInteropChaincodeAccessControlFile(destinationRelay *RelayServer) { - // For all source relay different from destination relay - // For all users and peers in all organizations in the source network, add a rule per chaincode in the destination network - destinationFabric := p.Fabric(destinationRelay) - for _, sourceRelay := range p.Topology.Relays { - var rules []*interop.Rule - if sourceRelay != destinationRelay { - sourceFabric := p.Fabric(sourceRelay) - - for _, ch := range destinationFabric.Channels() { - for _, chaincode := range ch.Chaincodes { - - for _, org := range sourceFabric.PeerOrgs() { - - for _, peer := range sourceFabric.PeersByOrg("", org.Name, true) { - raw, err := os.ReadFile(peer.Cert) - Expect(err).NotTo(HaveOccurred()) - - rules = append(rules, &interop.Rule{ - Principal: string(raw), - PrincipalType: "certificate", - Resource: fmt.Sprintf("%s:%s:*", ch.Name, chaincode.Name), - Read: false, - }) - } - - for _, user := range sourceFabric.UsersByOrg(org.Name) { - raw, err := os.ReadFile(user.Cert) - Expect(err).NotTo(HaveOccurred()) - - rules = append(rules, &interop.Rule{ - Principal: string(raw), - PrincipalType: "certificate", - Resource: fmt.Sprintf("%s:%s:*", ch.Name, chaincode.Name), - Read: false, - }) - } - } - } - } - } - accessControl := &interop.AccessControl{ - SecurityDomain: sourceRelay.Name, - Rules: rules, - } - raw, err := json.MarshalIndent(accessControl, "", " ") - Expect(err).ToNot(HaveOccurred()) - - Expect(err).NotTo(HaveOccurred()) - Expect(os.MkdirAll(p.RelayServerInteropDir(destinationRelay), 0o755)).NotTo(HaveOccurred()) - Expect(os.WriteFile(p.RelayServerInteropAccessControl(destinationRelay, sourceRelay), raw, 0o755)).NotTo(HaveOccurred()) - } -} - -func (p *Platform) generateInteropChaincodeMembershipFile(relay *RelayServer) { - fabric := p.Fabric(relay) - - // For all users in all organizations, add a rule per chaincode deployed - members := map[string]*interop.Member{} - for _, org := range fabric.PeerOrgs() { - raw, err := os.ReadFile(org.PeerCACertificatePath) - Expect(err).NotTo(HaveOccurred()) - members[org.MSPID] = &interop.Member{ - Type: "ca", - Value: string(raw), - } - } - membership := &interop.Membership{ - SecurityDomain: relay.Name, - Members: members, - } - raw, err := json.MarshalIndent(membership, "", " ") - Expect(err).ToNot(HaveOccurred()) - - Expect(err).NotTo(HaveOccurred()) - Expect(os.MkdirAll(p.RelayServerInteropDir(relay), 0o755)).NotTo(HaveOccurred()) - Expect(os.WriteFile(p.RelayServerInteropMembership(relay), raw, 0o755)).NotTo(HaveOccurred()) -} - -func (p *Platform) generateInteropChaincodeVerificationPolicyFile(destinationRelay *RelayServer) { - destinationFabric := p.Fabric(destinationRelay) - - // For all source networks - - // For all users in all organizations, add a rule per chaincode deployed - var identifiers []*interop.Identifier - for _, ch := range destinationFabric.Channels() { - for _, chaincode := range ch.Chaincodes { - identifiers = append(identifiers, &interop.Identifier{ - Pattern: fmt.Sprintf("%s:%s:*", ch.Name, chaincode.Name), - Policy: &interop.Policy{ - Type: "Signature", - Criteria: chaincode.OrgMSPIDs, - }, - }) - } - } - verificationPolicy := &interop.VerificationPolicy{ - SecurityDomain: strings.Replace(destinationRelay.Name, "Fabric_", "", -1), - Identifiers: identifiers, - } - raw, err := json.MarshalIndent(verificationPolicy, "", " ") - Expect(err).ToNot(HaveOccurred()) - - Expect(err).NotTo(HaveOccurred()) - Expect(os.MkdirAll(p.RelayServerInteropDir(destinationRelay), 0o755)).NotTo(HaveOccurred()) - Expect(os.WriteFile(p.RelayServerInteropVerificationPolicy(destinationRelay), raw, 0o755)).NotTo(HaveOccurred()) -} - -func (p *Platform) generateFabricExtension() { - fscTopology := p.Context.TopologyByName("fsc").(*fsc.Topology) - for _, node := range fscTopology.Nodes { - opt := fabric2.Options(node.Options) - - var servers []*RelayServer - for _, relay := range p.Topology.Relays { - for _, organization := range opt.Organizations() { - if relay.FabricTopologyName == organization.Network { - servers = append(servers, relay) - break - } - } - } - - t, err := template.New("view_extension").Funcs(template.FuncMap{ - "Servers": func() []*RelayServer { return servers }, - "RelaysOf": func(relay *RelayServer) []*RelayServer { - var relays []*RelayServer - for _, r := range p.Topology.Relays { - if r != relay { - relays = append(relays, r) - } - } - return relays - }, - }).Parse(FabricExtensionTemplate) - Expect(err).NotTo(HaveOccurred()) - - extension := bytes.NewBuffer([]byte{}) - err = t.Execute(io.MultiWriter(extension), p) - Expect(err).NotTo(HaveOccurred()) - - for _, uniqueName := range node.ReplicaUniqueNames() { - p.Context.AddExtension(uniqueName, api2.FabricExtension, extension.String()) - } - } -} - -func (p *Platform) copyInteropChaincode() { - src, cleanup, err := packageChaincode() - Expect(err).ToNot(HaveOccurred()) - - defer cleanup() - - dst := p.InteropChaincodeFile() - sourceFileStat, err := os.Stat(src) - Expect(err).ToNot(HaveOccurred()) - - Expect(sourceFileStat.Mode().IsRegular()).To(BeTrue()) - source, err := os.Open(src) - Expect(err).ToNot(HaveOccurred()) - defer source.Close() - destination, err := os.Create(dst) - Expect(err).ToNot(HaveOccurred()) - defer destination.Close() - _, err = io.Copy(destination, source) - Expect(err).ToNot(HaveOccurred()) -} diff --git a/integration/nwo/weaver/templates.go b/integration/nwo/weaver/templates.go deleted file mode 100755 index 1a4f14bed..000000000 --- a/integration/nwo/weaver/templates.go +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -const RelayServerTOML = `# Name of the relay -name = "{{ Name }}" -# Port number for relay grpc server. e.g. 9080 -port="{{ Port }}" -# Host address for grpc server. e.g. 0.0.0.0 -host="0.0.0.0" -hostname="0.0.0.0" - -db_path="db/{{ Name }}/requests" -# This will be replaced by the task queue. -remote_db_path="db/{{ Name }}/remote_request" - -# FOR TLS -cert_path="credentials/fabric_cert.pem" -key_path="credentials/fabric_key" -# tls=true - -[networks]{{ range Networks }} -[networks.{{ .Name }}] -network="{{ .Type }}" -{{- end }} - -[relays]{{ range Relays }} -[relays.{{ .Name }}] -hostname="{{ .Hostname }}" -port="{{ .Port }}" -{{- end }} - -[drivers]{{ range Drivers }} -[drivers.{{ .Name }}] -hostname="{{ .Hostname }}" -port="{{ .Port }}" -{{- end }} -` - -const FabricExtensionTemplate = ` -fabric:{{ range Servers }} - {{ .FabricTopologyName }}: - weaver: - interopcc: - {{ .InteropChaincode.Channel }}: - name: {{ .InteropChaincode.Namespace }} - relay: - address: {{ .Hostname }}:{{ .Port }} - tls: - enabled: false - remote: {{ range RelaysOf . }} - {{ .Name }}: - address: {{ .Hostname }}:{{ .Port }} - {{- end }} -{{- end }} -` diff --git a/integration/nwo/weaver/testdata/cert.pem b/integration/nwo/weaver/testdata/cert.pem deleted file mode 100644 index 0a39ac055..000000000 --- a/integration/nwo/weaver/testdata/cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICKjCCAdGgAwIBAgIUBFTi56rmjunJiRESpyJW0q4sRL4wCgYIKoZIzj0EAwIw -cjELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH -EwZEdXJoYW0xGjAYBgNVBAoTEW9yZzEubmV0d29yazEuY29tMR0wGwYDVQQDExRj -YS5vcmcxLm5ldHdvcmsxLmNvbTAeFw0yMDA3MjkwNDM1MDBaFw0zNTA3MjYwNDM1 -MDBaMHIxCzAJBgNVBAYTAlVTMRcwFQYDVQQIEw5Ob3J0aCBDYXJvbGluYTEPMA0G -A1UEBxMGRHVyaGFtMRowGAYDVQQKExFvcmcxLm5ldHdvcmsxLmNvbTEdMBsGA1UE -AxMUY2Eub3JnMS5uZXR3b3JrMS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC -AAQONsIOz5o+HhKgSdIOpqGrTcvJ3tADkFsyMg0vV3MSo6gyAq5V23c1grO4X5xU -Y71ZVTPQuokv6/WIQYIaumjDo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/ -BAgwBgEB/wIBATAdBgNVHQ4EFgQU1g+tPngh2w8g99z1mwsVbkKjAKkwCgYIKoZI -zj0EAwIDRwAwRAIgGdSMyEzimoSwjTyF+NmOwOLn4xpeMOhev5idRWpy+ZsCIFKA -0I8cCd5tw7zTukyjWMJi737K+4zPK6QDKIeql+R1 ------END CERTIFICATE----- diff --git a/integration/nwo/weaver/testdata/network1/access-control.json b/integration/nwo/weaver/testdata/network1/access-control.json deleted file mode 100644 index 95d56810d..000000000 --- a/integration/nwo/weaver/testdata/network1/access-control.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "securityDomain": "network1", - "rules": [ - { - "principal": "-----BEGIN CERTIFICATE-----\nMIICrTCCAlSgAwIBAgIUHCW/0mWLashHHoswLqUhi+QpDG8wCgYIKoZIzj0EAwIw\ncjELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH\nEwZEdXJoYW0xGjAYBgNVBAoTEW9yZzEubmV0d29yazEuY29tMR0wGwYDVQQDExRj\nYS5vcmcxLm5ldHdvcmsxLmNvbTAeFw0yMDA3MjkwNDM2MDBaFw0yMTA3MjkwNDQx\nMDBaMF0xCzAJBgNVBAYTAlVTMRcwFQYDVQQIEw5Ob3J0aCBDYXJvbGluYTEUMBIG\nA1UEChMLSHlwZXJsZWRnZXIxDzANBgNVBAsTBmNsaWVudDEOMAwGA1UEAxMFdXNl\ncjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASuh/rVCf8ODuw0IhnrM2iif2a7\nsGT8BIV1PEDU3SnqClmh+RV/3JyKl/TythzN/ZVnKE/tv5d3gVWbNstc97+So4Hc\nMIHZMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQx/hLY\nCNG4ezCqvgTKC/WwuSVnmDAfBgNVHSMEGDAWgBTWD60+eCHbDyD33PWbCxVuQqMA\nqTAfBgNVHREEGDAWghRvYzUxMDM3NDczODAuaWJtLmNvbTBYBggqAwQFBgcIAQRM\neyJhdHRycyI6eyJoZi5BZmZpbGlhdGlvbiI6IiIsImhmLkVucm9sbG1lbnRJRCI6\nInVzZXIxIiwiaGYuVHlwZSI6ImNsaWVudCJ9fTAKBggqhkjOPQQDAgNHADBEAiAF\nnsL6UuxTmJK9nhdMMP5lV7xnyYl1WyDizEQsfwuOZwIgXcwnHOaUDWYjfXtFSI5y\nzZ9mr6PEkR4DtTHIRFaMV18=\n-----END CERTIFICATE-----\n", - "principalType": "ca", - "resource": "mychannel:simplestate:Read:*", - "read": true - } - ] -} \ No newline at end of file diff --git a/integration/nwo/weaver/testdata/network1/membership.json b/integration/nwo/weaver/testdata/network1/membership.json deleted file mode 100644 index a9bdad007..000000000 --- a/integration/nwo/weaver/testdata/network1/membership.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "members": { - "Org1MSP": { - "type": "ca", - "value": "-----BEGIN CERTIFICATE-----\nMIICKjCCAdGgAwIBAgIUBFTi56rmjunJiRESpyJW0q4sRL4wCgYIKoZIzj0EAwIw\ncjELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH\nEwZEdXJoYW0xGjAYBgNVBAoTEW9yZzEubmV0d29yazEuY29tMR0wGwYDVQQDExRj\nYS5vcmcxLm5ldHdvcmsxLmNvbTAeFw0yMDA3MjkwNDM1MDBaFw0zNTA3MjYwNDM1\nMDBaMHIxCzAJBgNVBAYTAlVTMRcwFQYDVQQIEw5Ob3J0aCBDYXJvbGluYTEPMA0G\nA1UEBxMGRHVyaGFtMRowGAYDVQQKExFvcmcxLm5ldHdvcmsxLmNvbTEdMBsGA1UE\nAxMUY2Eub3JnMS5uZXR3b3JrMS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC\nAAQONsIOz5o+HhKgSdIOpqGrTcvJ3tADkFsyMg0vV3MSo6gyAq5V23c1grO4X5xU\nY71ZVTPQuokv6/WIQYIaumjDo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/\nBAgwBgEB/wIBATAdBgNVHQ4EFgQU1g+tPngh2w8g99z1mwsVbkKjAKkwCgYIKoZI\nzj0EAwIDRwAwRAIgGdSMyEzimoSwjTyF+NmOwOLn4xpeMOhev5idRWpy+ZsCIFKA\n0I8cCd5tw7zTukyjWMJi737K+4zPK6QDKIeql+R1\n-----END CERTIFICATE-----\n" - } - }, - "securityDomain": "network1" -} \ No newline at end of file diff --git a/integration/nwo/weaver/testdata/network1/verification-policy.json b/integration/nwo/weaver/testdata/network1/verification-policy.json deleted file mode 100644 index 6dfff80d9..000000000 --- a/integration/nwo/weaver/testdata/network1/verification-policy.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "securityDomain": "network1", - "identifiers": [ - { - "pattern": "mychannel:simplestate:Read:*", - "policy": { - "type": "Signature", - "criteria": [ - "Org1MSP" - ] - } - } - ] -} \ No newline at end of file diff --git a/integration/nwo/weaver/topology.go b/integration/nwo/weaver/topology.go deleted file mode 100755 index 1d06db0d7..000000000 --- a/integration/nwo/weaver/topology.go +++ /dev/null @@ -1,101 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -import ( - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric/topology" -) - -const ( - TopologyName = "weaver" -) - -type Network struct { - Type string - Name string -} - -type Driver struct { - Name string - Hostname string - Port uint16 `yaml:"port,omitempty"` -} - -type InteropChaincode struct { - Label string - Channel string - Namespace string - Path string -} - -type RelayServer struct { - FabricTopology *topology.Topology `yaml:"-"` - FabricTopologyName string - Name string - Hostname string - Port uint16 `yaml:"port,omitempty"` - Organization string - Networks []*Network - Drivers []*Driver - InteropChaincode InteropChaincode -} - -func (w *RelayServer) AddFabricNetwork(ft *topology.Topology) *RelayServer { - w.Networks = append(w.Networks, &Network{ - Type: "Fabric", - Name: ft.Name(), - }) - return w -} - -type Topology struct { - TopologyName string `yaml:"name,omitempty"` - TopologyType string `yaml:"type,omitempty"` - Relays []*RelayServer -} - -func NewTopology() *Topology { - return &Topology{ - TopologyName: TopologyName, - TopologyType: TopologyName, - Relays: []*RelayServer{}, - } -} - -func (t *Topology) Name() string { - return t.TopologyName -} - -func (t *Topology) Type() string { - return t.TopologyType -} - -func (t *Topology) AddRelayServer(ft *topology.Topology, org string) *RelayServer { - ft.EnableWeaver() - r := &RelayServer{ - FabricTopology: ft, - FabricTopologyName: ft.Name(), - Name: ft.Name(), - Hostname: "relay-" + ft.Name(), - Organization: org, - Drivers: []*Driver{ - { - Name: "Fabric", - Hostname: "driver-" + ft.Name(), - }, - }, - InteropChaincode: InteropChaincode{ - Label: "interop", - Channel: ft.Channels[0].Name, - Namespace: "interop", - Path: "github.com/hyperledger-labs/weaver-dlt-interoperability/core/network/fabric-interop-cc/contracts/interop", - }, - } - t.Relays = append(t.Relays, r) - r.AddFabricNetwork(ft) - return r -} diff --git a/integration/nwo/weaver/util.go b/integration/nwo/weaver/util.go deleted file mode 100644 index b7fbdc4fd..000000000 --- a/integration/nwo/weaver/util.go +++ /dev/null @@ -1,222 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -import ( - "archive/tar" - "archive/zip" - "compress/gzip" - "fmt" - "io" - "io/fs" - "net/http" - "os" - "path/filepath" - "strings" - - "github.com/pkg/errors" -) - -const ( - interopCCPath = `https://github.com/hyperledger-labs/weaver-dlt-interoperability/archive/refs/tags/core/network/fabric-interop-cc/contracts/interop/v1.2.2.zip` -) - -func packageChaincode() (tmpDir string, cleanup func(), err error) { - metadataContent := `{"path":"github.com/hyperledger-labs/weaver-dlt-interoperability/core/network/fabric-interop-cc/contracts/interop","type":"golang","label":"interop"}` - _ = metadataContent - resp, err := http.Get(interopCCPath) - if err != nil { - return "", nil, errors.Errorf("failed downloading file %s: %v", interopCCPath, err) - } - defer resp.Body.Close() - - tmpDir, err = os.MkdirTemp("", "interopCC") - if err != nil { - return "", nil, errors.Errorf("failed creating temp directory: %v", err) - } - - archivePath := filepath.Join(tmpDir, "interopCC.zip") - out, err := os.Create(archivePath) - if err != nil { - return "", nil, err - } - defer out.Close() - _, err = io.Copy(out, resp.Body) - if err != nil { - return "", nil, errors.Errorf("failed downloading data from %s: %v", interopCCPath, err) - } - - archive, err := zip.OpenReader(archivePath) - if err != nil { - return "", nil, errors.Errorf("failed opening zip archive %s: %v", archivePath, err) - } - defer archive.Close() - - for _, entry := range archive.File { - if !strings.Contains(entry.Name, "/core/network/fabric-interop-cc/contracts/interop/") { - continue - } - - i := strings.Index(entry.Name, "/core/network/fabric-interop-cc/contracts/interop/") - if i == -1 { - continue - } - - relPath := entry.Name[i:] - - relPath = strings.Replace(relPath, "/core/network/fabric-interop-cc/contracts/interop", "", 1) - relPath = filepath.Join(tmpDir, "src", relPath) - - if strings.Contains(relPath, "..") { - return "", nil, errors.Errorf("illegal path (contains '..')") - } - - fi := entry.FileInfo() - - if fi.IsDir() { - err := os.MkdirAll(relPath, 0o755) - if err != nil { - return "", nil, fmt.Errorf("failed creating directory %s: %v", relPath, err) - } - continue - } - - f, err := entry.Open() - if err != nil { - return "", nil, fmt.Errorf("invalid archive entry %s: %v", entry.Name, err) - } - - bytes, err := io.ReadAll(f) - if err != nil { - return "", nil, fmt.Errorf("failed reading %s: %v", entry.Name, err) - } - - err = os.WriteFile(relPath, bytes, 0o644) - if err != nil { - return "", nil, fmt.Errorf("failed writing to %s: %v", relPath, err) - } - } // for all entries in zip file - - srcFolder := filepath.Join(tmpDir, "src") - codeTarGz := filepath.Join(tmpDir, "code.tar.gz") - metadataPath := filepath.Join(tmpDir, "metadata.json") - - err = gzipDir(srcFolder, codeTarGz) - if err != nil { - return tmpDir, func() {}, err - } - - err = os.WriteFile(metadataPath, []byte(metadataContent), 0o644) - if err != nil { - return - } - - packageTarGz := filepath.Join(tmpDir, "interop.tar.gz") - - if err := createCodePackage(packageTarGz, codeTarGz, metadataPath); err != nil { - return tmpDir, func() {}, err - } - - return packageTarGz, func() { - os.RemoveAll(tmpDir) - }, err -} - -func createCodePackage(dest, codeTarGz, metadataPath string) error { - tarGzArchive, err := os.Create(dest) - if err != nil { - return err - } - - gz := gzip.NewWriter(tarGzArchive) - defer gz.Close() - - t := tar.NewWriter(gz) - defer t.Close() - defer t.Flush() - - for _, fileToArchive := range []string{codeTarGz, metadataPath} { - f, err := os.Open(fileToArchive) - if err != nil { - return fmt.Errorf("failed opening %s: %v", fileToArchive, err) - } - - fi, err := f.Stat() - if err != nil { - return err - } - - h, err := tar.FileInfoHeader(fi, fi.Name()) - if err != nil { - return err - } - - h.Name = fi.Name() - - if err := t.WriteHeader(h); err != nil { - return err - } - - if _, err := io.Copy(t, f); err != nil { - return err - } - - } - return nil -} - -func gzipDir(dir, dest string) error { - tarGzArchive, err := os.Create(dest) - if err != nil { - return err - } - - gz := gzip.NewWriter(tarGzArchive) - defer gz.Close() - - t := tar.NewWriter(gz) - defer t.Close() - defer t.Flush() - - err = filepath.Walk(dir, func(path string, info fs.FileInfo, err error) error { - if err != nil { - return fmt.Errorf("failed accessing %s: %v", path, err) - } - - f, err := os.Open(path) - if err != nil { - return fmt.Errorf("failed opening %s: %v", path, err) - } - - defer f.Close() - - h, err := tar.FileInfoHeader(info, info.Name()) - if err != nil { - return err - } - - parent := filepath.Dir(dir) - h.Name = strings.Replace(path, parent, "", -1) - err = t.WriteHeader(h) - if err != nil { - return err - } - - if info.IsDir() { - return nil - } - - _, err = io.Copy(t, f) - if err != nil { - return fmt.Errorf("failed reading data from %s: %v", f.Name(), err) - } - - return nil - }) - - return err -} diff --git a/integration/ports.go b/integration/ports.go index 1bac30b96..ed192d99a 100755 --- a/integration/ports.go +++ b/integration/ports.go @@ -34,7 +34,6 @@ const ( AssetTransferSecuredAgreementWithApprovers AssetTransferEventsAgreementWithChaincode TwoFabricNetworksPort - TwoFabricNetworksWithWeaverRelayPort FabricStopRestart PingPongOrion ) diff --git a/pkg/runner/batch_test.go b/pkg/runner/batch_test.go index 6f9d4cdae..cfa62e88f 100644 --- a/pkg/runner/batch_test.go +++ b/pkg/runner/batch_test.go @@ -21,10 +21,10 @@ func TestBatchRunner(t *testing.T) { ctr := &atomic.Uint32{} runner, m, locksObtained := newBatchRunner() - run(t, ctr, runner, 1000) - assert.Len(t, m, 1000) + run(t, ctr, runner, 100) + assert.Len(t, m, 100) assert.Equal(t, "val_10", m["key_10"]) - assert.Equal(t, 10, int(atomic.LoadUint32(locksObtained))) + assert.Equal(t, 1, int(atomic.LoadUint32(locksObtained))) } func TestBatchRunnerFewRequests(t *testing.T) { diff --git a/platform/common/core/generic/vault/helpers.go b/platform/common/core/generic/vault/helpers.go index 8c6e2dcf4..d639272cc 100644 --- a/platform/common/core/generic/vault/helpers.go +++ b/platform/common/core/generic/vault/helpers.go @@ -17,7 +17,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/collections" driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver" - "github.com/hyperledger/fabric-protos-go/ledger/rwset" + "github.com/hyperledger/fabric-protos-go-apiv2/ledger/rwset" "github.com/stretchr/testify/assert" "golang.org/x/exp/slices" ) diff --git a/platform/fabric/core/generic/chaincode/discovery.go b/platform/fabric/core/generic/chaincode/discovery.go index 11f579c32..f6e67bd8f 100644 --- a/platform/fabric/core/generic/chaincode/discovery.go +++ b/platform/fabric/core/generic/chaincode/discovery.go @@ -14,8 +14,8 @@ import ( peer2 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/services" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - discovery2 "github.com/hyperledger/fabric-protos-go/discovery" - "github.com/hyperledger/fabric-protos-go/peer" + discovery2 "github.com/hyperledger/fabric-protos-go-apiv2/discovery" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/common/util" discovery "github.com/hyperledger/fabric/discovery/client" "github.com/pkg/errors" diff --git a/platform/fabric/core/generic/chaincode/invoke.go b/platform/fabric/core/generic/chaincode/invoke.go index 1d774f26e..9b8b563c2 100644 --- a/platform/fabric/core/generic/chaincode/invoke.go +++ b/platform/fabric/core/generic/chaincode/invoke.go @@ -20,8 +20,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - "github.com/hyperledger/fabric-protos-go/common" - pb "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" "go.uber.org/zap/zapcore" diff --git a/platform/fabric/core/generic/channel.go b/platform/fabric/core/generic/channel.go index 5db12ceb7..d14d98f5f 100644 --- a/platform/fabric/core/generic/channel.go +++ b/platform/fabric/core/generic/channel.go @@ -11,7 +11,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/membership" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/channelprovider.go b/platform/fabric/core/generic/channelprovider.go index e3755efca..4648ca2ae 100644 --- a/platform/fabric/core/generic/channelprovider.go +++ b/platform/fabric/core/generic/channelprovider.go @@ -25,7 +25,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/hash" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics" vault2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/storage/vault" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" ) diff --git a/platform/fabric/core/generic/committer/committer.go b/platform/fabric/core/generic/committer/committer.go index 239f2d34b..8e46b3c9c 100644 --- a/platform/fabric/core/generic/committer/committer.go +++ b/platform/fabric/core/generic/committer/committer.go @@ -29,9 +29,9 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/tracing" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/peer" - "github.com/hyperledger/fabric/bccsp/factory" + "github.com/hyperledger/fabric-lib-go/bccsp/factory" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/common/channelconfig" "github.com/hyperledger/fabric/common/configtx" "github.com/hyperledger/fabric/protoutil" diff --git a/platform/fabric/core/generic/committer/config.go b/platform/fabric/core/generic/committer/config.go index 8372ae7cc..b5418373a 100644 --- a/platform/fabric/core/generic/committer/config.go +++ b/platform/fabric/core/generic/committer/config.go @@ -9,7 +9,7 @@ package committer import ( "context" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" "go.uber.org/zap/zapcore" ) diff --git a/platform/fabric/core/generic/committer/endorsertx.go b/platform/fabric/core/generic/committer/endorsertx.go index 4b5e847f8..62d0e0c80 100644 --- a/platform/fabric/core/generic/committer/endorsertx.go +++ b/platform/fabric/core/generic/committer/endorsertx.go @@ -12,8 +12,8 @@ import ( errors2 "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/orion/driver" - "github.com/hyperledger/fabric-protos-go/common" - pb "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" "go.uber.org/zap/zapcore" diff --git a/platform/fabric/core/generic/committer/event.go b/platform/fabric/core/generic/committer/event.go index 7105738d8..a5cb9915c 100644 --- a/platform/fabric/core/generic/committer/event.go +++ b/platform/fabric/core/generic/committer/event.go @@ -9,8 +9,8 @@ package committer import ( "github.com/pkg/errors" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" ) diff --git a/platform/fabric/core/generic/committer/event_test.go b/platform/fabric/core/generic/committer/event_test.go index f24541a82..ec2fde11e 100644 --- a/platform/fabric/core/generic/committer/event_test.go +++ b/platform/fabric/core/generic/committer/event_test.go @@ -9,7 +9,7 @@ package committer import ( "testing" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/test-go/testify/require" ) diff --git a/platform/fabric/core/generic/delivery/deliverclient.go b/platform/fabric/core/generic/delivery/deliverclient.go index 5fc341a4d..90e56325e 100644 --- a/platform/fabric/core/generic/delivery/deliverclient.go +++ b/platform/fabric/core/generic/delivery/deliverclient.go @@ -16,9 +16,9 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/services" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" grpc2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" - "github.com/hyperledger/fabric-protos-go/common" - ab "github.com/hyperledger/fabric-protos-go/orderer" - pb "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + ab "github.com/hyperledger/fabric-protos-go-apiv2/orderer" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" "go.uber.org/zap/zapcore" diff --git a/platform/fabric/core/generic/delivery/delivery.go b/platform/fabric/core/generic/delivery/delivery.go index 4a5a85244..b72f4dea1 100644 --- a/platform/fabric/core/generic/delivery/delivery.go +++ b/platform/fabric/core/generic/delivery/delivery.go @@ -21,9 +21,9 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/tracing" - "github.com/hyperledger/fabric-protos-go/common" - ab "github.com/hyperledger/fabric-protos-go/orderer" - pb "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + ab "github.com/hyperledger/fabric-protos-go-apiv2/orderer" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" "go.uber.org/zap/zapcore" diff --git a/platform/fabric/core/generic/delivery/service.go b/platform/fabric/core/generic/delivery/service.go index 71e3de92a..e550b4594 100644 --- a/platform/fabric/core/generic/delivery/service.go +++ b/platform/fabric/core/generic/delivery/service.go @@ -15,8 +15,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/hash" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics" - "github.com/hyperledger/fabric-protos-go/common" - pb "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "go.opentelemetry.io/otel/trace" ) diff --git a/platform/fabric/core/generic/endpoint/pki.go b/platform/fabric/core/generic/endpoint/pki.go index 9fd3bc24c..50a87d704 100644 --- a/platform/fabric/core/generic/endpoint/pki.go +++ b/platform/fabric/core/generic/endpoint/pki.go @@ -13,7 +13,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - "github.com/hyperledger/fabric-protos-go/msp" + "github.com/hyperledger/fabric-protos-go-apiv2/msp" ) type PublicKeyExtractor struct{} diff --git a/platform/fabric/core/generic/events/listenermanager.go b/platform/fabric/core/generic/events/listenermanager.go index ac1f2a49e..bed329abd 100644 --- a/platform/fabric/core/generic/events/listenermanager.go +++ b/platform/fabric/core/generic/events/listenermanager.go @@ -16,7 +16,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" "github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/cache" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" "golang.org/x/sync/errgroup" diff --git a/platform/fabric/core/generic/fabricutils/pr.go b/platform/fabric/core/generic/fabricutils/pr.go index 5d0a2db9b..9463820dd 100644 --- a/platform/fabric/core/generic/fabricutils/pr.go +++ b/platform/fabric/core/generic/fabricutils/pr.go @@ -7,7 +7,7 @@ SPDX-License-Identifier: Apache-2.0 package fabricutils import ( - pb "github.com/hyperledger/fabric-protos-go/peer" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/rwsetutil" "github.com/hyperledger/fabric/protoutil" ) diff --git a/platform/fabric/core/generic/fabricutils/utils.go b/platform/fabric/core/generic/fabricutils/utils.go index 1525293ed..3e6ea70d8 100644 --- a/platform/fabric/core/generic/fabricutils/utils.go +++ b/platform/fabric/core/generic/fabricutils/utils.go @@ -13,8 +13,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" "go.uber.org/zap/zapcore" diff --git a/platform/fabric/core/generic/finality/deliveryflm.go b/platform/fabric/core/generic/finality/deliveryflm.go index 10e558eda..6486e34b1 100644 --- a/platform/fabric/core/generic/finality/deliveryflm.go +++ b/platform/fabric/core/generic/finality/deliveryflm.go @@ -17,7 +17,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/fabricutils" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/rwset" fdriver "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace/noop" ) diff --git a/platform/fabric/core/generic/finality/fabric.go b/platform/fabric/core/generic/finality/fabric.go index 5fd29155e..70e44a197 100644 --- a/platform/fabric/core/generic/finality/fabric.go +++ b/platform/fabric/core/generic/finality/fabric.go @@ -16,7 +16,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/services" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" - ab "github.com/hyperledger/fabric-protos-go/orderer" + ab "github.com/hyperledger/fabric-protos-go-apiv2/orderer" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/ledger/ledger.go b/platform/fabric/core/generic/ledger/ledger.go index eb160a504..072377915 100644 --- a/platform/fabric/core/generic/ledger/ledger.go +++ b/platform/fabric/core/generic/ledger/ledger.go @@ -9,8 +9,8 @@ package ledger import ( "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/idemix/audit.go b/platform/fabric/core/generic/msp/idemix/audit.go index ae6bd31f4..86259d4b2 100644 --- a/platform/fabric/core/generic/msp/idemix/audit.go +++ b/platform/fabric/core/generic/msp/idemix/audit.go @@ -11,7 +11,7 @@ import ( csp "github.com/IBM/idemix/bccsp/types" "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - m "github.com/hyperledger/fabric-protos-go/msp" + m "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/idemix/config.go b/platform/fabric/core/generic/msp/idemix/config.go index 614acc8f5..996bcd890 100644 --- a/platform/fabric/core/generic/msp/idemix/config.go +++ b/platform/fabric/core/generic/msp/idemix/config.go @@ -14,7 +14,7 @@ import ( "github.com/IBM/idemix" im "github.com/IBM/idemix/idemixmsp" "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - m "github.com/hyperledger/fabric-protos-go/msp" + m "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/hyperledger/fabric/msp" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/idemix/id.go b/platform/fabric/core/generic/msp/idemix/id.go index a6e1bcd58..62575ba8e 100644 --- a/platform/fabric/core/generic/msp/idemix/id.go +++ b/platform/fabric/core/generic/msp/idemix/id.go @@ -13,7 +13,7 @@ import ( bccsp "github.com/IBM/idemix/bccsp/types" "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" "github.com/hyperledger-labs/fabric-smart-client/platform/view/driver" - m "github.com/hyperledger/fabric-protos-go/msp" + m "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/hyperledger/fabric/msp" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/idemix/idemix.go b/platform/fabric/core/generic/msp/idemix/idemix.go index c8ffb2850..0a58b140b 100644 --- a/platform/fabric/core/generic/msp/idemix/idemix.go +++ b/platform/fabric/core/generic/msp/idemix/idemix.go @@ -9,7 +9,7 @@ package idemix import ( bccsp "github.com/IBM/idemix/bccsp/types" "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - m "github.com/hyperledger/fabric-protos-go/msp" + m "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/idemix/provider.go b/platform/fabric/core/generic/msp/idemix/provider.go index 8a937f439..d2b2feaa5 100644 --- a/platform/fabric/core/generic/msp/idemix/provider.go +++ b/platform/fabric/core/generic/msp/idemix/provider.go @@ -20,7 +20,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/hash" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - m "github.com/hyperledger/fabric-protos-go/msp" + m "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/pkg/errors" "go.uber.org/zap/zapcore" ) diff --git a/platform/fabric/core/generic/msp/idemix/roles.go b/platform/fabric/core/generic/msp/idemix/roles.go index e6459a6ef..28ffd6679 100644 --- a/platform/fabric/core/generic/msp/idemix/roles.go +++ b/platform/fabric/core/generic/msp/idemix/roles.go @@ -7,7 +7,7 @@ SPDX-License-Identifier: Apache-2.0 package idemix import ( - m "github.com/hyperledger/fabric-protos-go/msp" + m "github.com/hyperledger/fabric-protos-go-apiv2/msp" ) // Role : Represents a IdemixRole diff --git a/platform/fabric/core/generic/msp/x509/deserializer.go b/platform/fabric/core/generic/msp/x509/deserializer.go index b99507360..a050c56b9 100644 --- a/platform/fabric/core/generic/msp/x509/deserializer.go +++ b/platform/fabric/core/generic/msp/x509/deserializer.go @@ -13,7 +13,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" "github.com/hyperledger-labs/fabric-smart-client/platform/view/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - "github.com/hyperledger/fabric-protos-go/msp" + "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/x509/ecdsa.go b/platform/fabric/core/generic/msp/x509/ecdsa.go index 1271d5427..a0ab08e95 100644 --- a/platform/fabric/core/generic/msp/x509/ecdsa.go +++ b/platform/fabric/core/generic/msp/x509/ecdsa.go @@ -21,8 +21,8 @@ import ( utils2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/utils" "github.com/hyperledger-labs/fabric-smart-client/platform/view/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - "github.com/hyperledger/fabric-protos-go/msp" - "github.com/hyperledger/fabric/bccsp/utils" + "github.com/hyperledger/fabric-lib-go/bccsp/utils" + "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/pkg/errors" ) @@ -107,7 +107,7 @@ func NewSigner() (view.Identity, driver.Signer, driver.Verifier, error) { } mspSI := &msp.SerializedIdentity{ - //Type: msp.SerializedIdentity_PK, + // Type: msp.SerializedIdentity_PK, IdBytes: pkRaw, } idRaw, err := proto.Marshal(mspSI) diff --git a/platform/fabric/core/generic/msp/x509/identity.go b/platform/fabric/core/generic/msp/x509/identity.go index 703091060..01b70767d 100644 --- a/platform/fabric/core/generic/msp/x509/identity.go +++ b/platform/fabric/core/generic/msp/x509/identity.go @@ -12,7 +12,7 @@ import ( "os" "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - "github.com/hyperledger/fabric-protos-go/msp" + "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/x509/pkcs11/disabled.go b/platform/fabric/core/generic/msp/x509/pkcs11/disabled.go index 5878696e1..8c9738993 100644 --- a/platform/fabric/core/generic/msp/x509/pkcs11/disabled.go +++ b/platform/fabric/core/generic/msp/x509/pkcs11/disabled.go @@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0 package pkcs11 import ( - "github.com/hyperledger/fabric/bccsp" + "github.com/hyperledger/fabric-lib-go/bccsp" ) type KeyIDMapping struct { diff --git a/platform/fabric/core/generic/msp/x509/pkcs11/pkcs11.go b/platform/fabric/core/generic/msp/x509/pkcs11/pkcs11.go index c89df411e..2781a0574 100644 --- a/platform/fabric/core/generic/msp/x509/pkcs11/pkcs11.go +++ b/platform/fabric/core/generic/msp/x509/pkcs11/pkcs11.go @@ -10,8 +10,8 @@ package pkcs11 import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/config" - "github.com/hyperledger/fabric/bccsp" - "github.com/hyperledger/fabric/bccsp/pkcs11" + "github.com/hyperledger/fabric-lib-go/bccsp" + "github.com/hyperledger/fabric-lib-go/bccsp/pkcs11" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/x509/provider.go b/platform/fabric/core/generic/msp/x509/provider.go index 8ceb2a066..367976a25 100644 --- a/platform/fabric/core/generic/msp/x509/provider.go +++ b/platform/fabric/core/generic/msp/x509/provider.go @@ -15,7 +15,7 @@ import ( driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/msp/driver" driver "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - "github.com/hyperledger/fabric-protos-go/msp" + "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/msp/x509/setup.go b/platform/fabric/core/generic/msp/x509/setup.go index 29d772edb..a9e767f3b 100644 --- a/platform/fabric/core/generic/msp/x509/setup.go +++ b/platform/fabric/core/generic/msp/x509/setup.go @@ -18,9 +18,9 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/msp/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/msp/x509/pkcs11" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/hash" - msp2 "github.com/hyperledger/fabric-protos-go/msp" - "github.com/hyperledger/fabric/bccsp" - "github.com/hyperledger/fabric/bccsp/sw" + "github.com/hyperledger/fabric-lib-go/bccsp" + "github.com/hyperledger/fabric-lib-go/bccsp/sw" + msp2 "github.com/hyperledger/fabric-protos-go-apiv2/msp" "github.com/hyperledger/fabric/msp" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/ordering/bft.go b/platform/fabric/core/generic/ordering/bft.go index a9e927f19..e7b9ded7e 100644 --- a/platform/fabric/core/generic/ordering/bft.go +++ b/platform/fabric/core/generic/ordering/bft.go @@ -15,7 +15,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/metrics" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" - common2 "github.com/hyperledger/fabric-protos-go/common" + common2 "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" "golang.org/x/sync/semaphore" diff --git a/platform/fabric/core/generic/ordering/cft.go b/platform/fabric/core/generic/ordering/cft.go index 16e291f07..f1b41b5c0 100644 --- a/platform/fabric/core/generic/ordering/cft.go +++ b/platform/fabric/core/generic/ordering/cft.go @@ -12,8 +12,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/metrics" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - common2 "github.com/hyperledger/fabric-protos-go/common" - ab "github.com/hyperledger/fabric-protos-go/orderer" + common2 "github.com/hyperledger/fabric-protos-go-apiv2/common" + ab "github.com/hyperledger/fabric-protos-go-apiv2/orderer" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" "golang.org/x/sync/semaphore" diff --git a/platform/fabric/core/generic/ordering/client.go b/platform/fabric/core/generic/ordering/client.go index ff629e179..19b69963c 100644 --- a/platform/fabric/core/generic/ordering/client.go +++ b/platform/fabric/core/generic/ordering/client.go @@ -11,8 +11,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/services" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" - "github.com/hyperledger/fabric-protos-go/common" - ab "github.com/hyperledger/fabric-protos-go/orderer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + ab "github.com/hyperledger/fabric-protos-go-apiv2/orderer" ) type Connection struct { diff --git a/platform/fabric/core/generic/ordering/ordering.go b/platform/fabric/core/generic/ordering/ordering.go index a0e907ad1..fa3e8c513 100644 --- a/platform/fabric/core/generic/ordering/ordering.go +++ b/platform/fabric/core/generic/ordering/ordering.go @@ -16,7 +16,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - common2 "github.com/hyperledger/fabric-protos-go/common" + common2 "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" "go.uber.org/zap/zapcore" diff --git a/platform/fabric/core/generic/rwset/envelope.go b/platform/fabric/core/generic/rwset/envelope.go index d5ab54c18..2ab782791 100644 --- a/platform/fabric/core/generic/rwset/envelope.go +++ b/platform/fabric/core/generic/rwset/envelope.go @@ -8,8 +8,8 @@ package rwset import ( "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/rwset/handler.go b/platform/fabric/core/generic/rwset/handler.go index 70944cd8d..570310651 100644 --- a/platform/fabric/core/generic/rwset/handler.go +++ b/platform/fabric/core/generic/rwset/handler.go @@ -13,7 +13,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/common/core/generic/vault" vault2 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/vault" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" ) type endorserTransactionHandler struct { diff --git a/platform/fabric/core/generic/rwset/loader.go b/platform/fabric/core/generic/rwset/loader.go index 7e06503f9..0a17493ed 100644 --- a/platform/fabric/core/generic/rwset/loader.go +++ b/platform/fabric/core/generic/rwset/loader.go @@ -12,7 +12,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" diff --git a/platform/fabric/core/generic/services/client.go b/platform/fabric/core/generic/services/client.go index d394082c0..f71e0e58d 100644 --- a/platform/fabric/core/generic/services/client.go +++ b/platform/fabric/core/generic/services/client.go @@ -10,9 +10,9 @@ import ( "context" "crypto/tls" - "github.com/hyperledger/fabric-protos-go/discovery" - ab "github.com/hyperledger/fabric-protos-go/orderer" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/discovery" + ab "github.com/hyperledger/fabric-protos-go-apiv2/orderer" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" dclient "github.com/hyperledger/fabric/discovery/client" ) diff --git a/platform/fabric/core/generic/services/conn.go b/platform/fabric/core/generic/services/conn.go index 810001853..21d5649f5 100644 --- a/platform/fabric/core/generic/services/conn.go +++ b/platform/fabric/core/generic/services/conn.go @@ -13,9 +13,9 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/lazy" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" - "github.com/hyperledger/fabric-protos-go/discovery" - ab "github.com/hyperledger/fabric-protos-go/orderer" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/discovery" + ab "github.com/hyperledger/fabric-protos-go-apiv2/orderer" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" dclient "github.com/hyperledger/fabric/discovery/client" "github.com/pkg/errors" ggrpc "google.golang.org/grpc" diff --git a/platform/fabric/core/generic/services/grpc.go b/platform/fabric/core/generic/services/grpc.go index 3ffbbc1f5..fa2af5d15 100644 --- a/platform/fabric/core/generic/services/grpc.go +++ b/platform/fabric/core/generic/services/grpc.go @@ -11,8 +11,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/lazy" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/grpc" - ab "github.com/hyperledger/fabric-protos-go/orderer" - pb "github.com/hyperledger/fabric-protos-go/peer" + ab "github.com/hyperledger/fabric-protos-go-apiv2/orderer" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" discovery2 "github.com/hyperledger/fabric/discovery/client" grpc2 "google.golang.org/grpc" ) diff --git a/platform/fabric/core/generic/transaction/envelope.go b/platform/fabric/core/generic/transaction/envelope.go index 2d4526e4d..f98c41b3b 100644 --- a/platform/fabric/core/generic/transaction/envelope.go +++ b/platform/fabric/core/generic/transaction/envelope.go @@ -10,8 +10,8 @@ import ( "encoding/json" "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" "go.uber.org/zap/zapcore" diff --git a/platform/fabric/core/generic/transaction/pr.go b/platform/fabric/core/generic/transaction/pr.go index 6a6bcb884..5cf6ffaa7 100644 --- a/platform/fabric/core/generic/transaction/pr.go +++ b/platform/fabric/core/generic/transaction/pr.go @@ -10,7 +10,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/transaction/proposal.go b/platform/fabric/core/generic/transaction/proposal.go index accb34332..9136ba337 100644 --- a/platform/fabric/core/generic/transaction/proposal.go +++ b/platform/fabric/core/generic/transaction/proposal.go @@ -11,8 +11,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" - cb "github.com/hyperledger/fabric-protos-go/common" - pb "github.com/hyperledger/fabric-protos-go/peer" + cb "github.com/hyperledger/fabric-protos-go-apiv2/common" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/core/common/ccprovider" "github.com/hyperledger/fabric/msp" "github.com/hyperledger/fabric/protoutil" diff --git a/platform/fabric/core/generic/transaction/proposalresponse.go b/platform/fabric/core/generic/transaction/proposalresponse.go index 2d5df520c..66bd8c56a 100644 --- a/platform/fabric/core/generic/transaction/proposalresponse.go +++ b/platform/fabric/core/generic/transaction/proposalresponse.go @@ -7,7 +7,7 @@ SPDX-License-Identifier: Apache-2.0 package transaction import ( - pb "github.com/hyperledger/fabric-protos-go/peer" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" ) diff --git a/platform/fabric/core/generic/transaction/services.go b/platform/fabric/core/generic/transaction/services.go index 55e112a8b..5d09d89e7 100644 --- a/platform/fabric/core/generic/transaction/services.go +++ b/platform/fabric/core/generic/transaction/services.go @@ -11,7 +11,7 @@ import ( driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "github.com/pkg/errors" ) diff --git a/platform/fabric/core/generic/transaction/transasction.go b/platform/fabric/core/generic/transaction/transasction.go index 49b8804ad..26f162202 100644 --- a/platform/fabric/core/generic/transaction/transasction.go +++ b/platform/fabric/core/generic/transaction/transasction.go @@ -17,8 +17,8 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/fabricutils" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - pcommon "github.com/hyperledger/fabric-protos-go/common" - pb "github.com/hyperledger/fabric-protos-go/peer" + pcommon "github.com/hyperledger/fabric-protos-go-apiv2/common" + pb "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/hyperledger/fabric/protoutil" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" diff --git a/platform/fabric/core/generic/vault/vault.go b/platform/fabric/core/generic/vault/vault.go index 830c8f612..0b321a142 100644 --- a/platform/fabric/core/generic/vault/vault.go +++ b/platform/fabric/core/generic/vault/vault.go @@ -17,8 +17,8 @@ import ( fdriver "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics" vault2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/storage/vault" - "github.com/hyperledger/fabric-protos-go/ledger/rwset" - "github.com/hyperledger/fabric-protos-go/ledger/rwset/kvrwset" + "github.com/hyperledger/fabric-protos-go-apiv2/ledger/rwset" + "github.com/hyperledger/fabric-protos-go-apiv2/ledger/rwset/kvrwset" "github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/rwsetutil" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" diff --git a/platform/fabric/core/provider.go b/platform/fabric/core/provider.go index 6554e3b5d..a3401c154 100644 --- a/platform/fabric/core/provider.go +++ b/platform/fabric/core/provider.go @@ -16,8 +16,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view" driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/driver" - fabricLogging2 "github.com/hyperledger/fabric-lib-go/common/flogging" - fabricLogging "github.com/hyperledger/fabric/common/flogging" + fabricLogging "github.com/hyperledger/fabric-lib-go/common/flogging" "github.com/pkg/errors" ) @@ -141,11 +140,6 @@ func (p *FSNProvider) InitFabricLogging() { Writer: os.Stderr, LogSpec: p.configService.GetString("logging.spec"), }) - fabricLogging2.Init(fabricLogging2.Config{ - Format: p.configService.GetString("logging.format"), - Writer: os.Stderr, - LogSpec: p.configService.GetString("logging.spec"), - }) } func (p *FSNProvider) newFNS(network string) (driver.FabricNetworkService, error) { diff --git a/platform/fabric/delivery.go b/platform/fabric/delivery.go index eafb12733..dee5d629a 100644 --- a/platform/fabric/delivery.go +++ b/platform/fabric/delivery.go @@ -10,7 +10,7 @@ import ( "context" "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" ) type DeliveryCallback func(tx *ProcessedTransaction) (bool, error) diff --git a/platform/fabric/driver/committer.go b/platform/fabric/driver/committer.go index 8e333bef0..ca364f26b 100644 --- a/platform/fabric/driver/committer.go +++ b/platform/fabric/driver/committer.go @@ -10,7 +10,7 @@ import ( "context" "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" ) // ValidationCode of transaction diff --git a/platform/fabric/driver/delivery.go b/platform/fabric/driver/delivery.go index eebec1149..23e00f7d1 100644 --- a/platform/fabric/driver/delivery.go +++ b/platform/fabric/driver/delivery.go @@ -9,7 +9,7 @@ package driver import ( "context" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" ) // DeliveryCallback is a callback function used to process a transaction. diff --git a/platform/fabric/driver/rwset.go b/platform/fabric/driver/rwset.go index 017fea6f2..a0f90ac4b 100644 --- a/platform/fabric/driver/rwset.go +++ b/platform/fabric/driver/rwset.go @@ -10,7 +10,7 @@ import ( "context" "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" ) type ( diff --git a/platform/fabric/driver/transaction.go b/platform/fabric/driver/transaction.go index a8cf6a506..737521c96 100644 --- a/platform/fabric/driver/transaction.go +++ b/platform/fabric/driver/transaction.go @@ -10,7 +10,7 @@ import ( "context" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" ) type TransactionType int32 diff --git a/platform/fabric/sdk/dig/generic/providers.go b/platform/fabric/sdk/dig/generic/providers.go index 7063a46df..764ccd26e 100644 --- a/platform/fabric/sdk/dig/generic/providers.go +++ b/platform/fabric/sdk/dig/generic/providers.go @@ -34,7 +34,7 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/kvs" "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics" vault2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/storage/vault" - "github.com/hyperledger/fabric-protos-go/common" + "github.com/hyperledger/fabric-protos-go-apiv2/common" "go.opentelemetry.io/otel/trace" "go.uber.org/dig" ) diff --git a/platform/fabric/services/crypto/provider.go b/platform/fabric/services/crypto/provider.go index 90c39e3c3..1561cbca3 100644 --- a/platform/fabric/services/crypto/provider.go +++ b/platform/fabric/services/crypto/provider.go @@ -9,8 +9,8 @@ package crypto import ( "hash" - "github.com/hyperledger/fabric/bccsp" - "github.com/hyperledger/fabric/bccsp/factory" + "github.com/hyperledger/fabric-lib-go/bccsp" + "github.com/hyperledger/fabric-lib-go/bccsp/factory" "github.com/pkg/errors" ) diff --git a/platform/fabric/services/state/sbe.go b/platform/fabric/services/state/sbe.go index 89691b59b..8c5eba95d 100644 --- a/platform/fabric/services/state/sbe.go +++ b/platform/fabric/services/state/sbe.go @@ -12,9 +12,9 @@ import ( "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver" "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" - "github.com/hyperledger/fabric-protos-go/common" - "github.com/hyperledger/fabric-protos-go/msp" - "github.com/hyperledger/fabric-protos-go/peer" + "github.com/hyperledger/fabric-protos-go-apiv2/common" + "github.com/hyperledger/fabric-protos-go-apiv2/msp" + "github.com/hyperledger/fabric-protos-go-apiv2/peer" "github.com/pkg/errors" ) diff --git a/platform/fabric/services/weaver/relay.go b/platform/fabric/services/weaver/relay.go deleted file mode 100644 index a97463a77..000000000 --- a/platform/fabric/services/weaver/relay.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -import ( - "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" - fabric2 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/services/weaver/relay/fabric" -) - -var logger = logging.MustGetLogger("weaver.relay") - -// Relay gives access to the services offered by the Relay server -type Relay struct { - fns *fabric2.NetworkService -} - -// ToFabric gives access to the Relay services towards a Fabric network -func (r *Relay) ToFabric() *fabric.Fabric { - defaultChannel := r.fns.ConfigService().DefaultChannel() - ch, err := r.fns.Channel(defaultChannel) - if err != nil { - logger.Errorf("cannot get channel [%s:%s]: [%s]", r.fns.Name(), defaultChannel) - return nil - } - - return fabric.New(r.fns, ch) -} diff --git a/platform/fabric/services/weaver/relay/fabric/fabric.go b/platform/fabric/services/weaver/relay/fabric/fabric.go deleted file mode 100644 index 213ada2ae..000000000 --- a/platform/fabric/services/weaver/relay/fabric/fabric.go +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package fabric - -import ( - "encoding/json" - - "github.com/pkg/errors" - - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" -) - -// Fabric models the relay services towards a Fabric network -type Fabric struct { - fns *fabric.NetworkService - ch *fabric.Channel -} - -func New(fns *fabric.NetworkService, ch *fabric.Channel) *Fabric { - return &Fabric{fns: fns, ch: ch} -} - -// Query invokes the passed function on the passed arguments on the passed destination network, and returns -// the result. -// The destination argument is expected to be formatted as 'fabric://../` -func (f *Fabric) Query(destination, function string, args ...interface{}) (*Query, error) { - id, err := URLToID(destination) - if err != nil { - return nil, errors.Wrapf(err, "failed parsing destination [%s]", destination) - } - return NewQuery(f.fns, f.ch, id, function, args), nil -} - -// ProofFromBytes returns an object modeling a Relay proof from the passed bytes -func (f *Fabric) ProofFromBytes(raw []byte) (*Proof, error) { - proof := &ProofMessage{} - if err := json.Unmarshal(raw, proof); err != nil { - return nil, errors.Wrapf(err, "failed unmarshalling proof") - } - - return NewProof(f.fns, f.ch, proof) -} diff --git a/platform/fabric/services/weaver/relay/fabric/inspector.go b/platform/fabric/services/weaver/relay/fabric/inspector.go deleted file mode 100644 index 886fdce63..000000000 --- a/platform/fabric/services/weaver/relay/fabric/inspector.go +++ /dev/null @@ -1,124 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package fabric - -import ( - "strings" - - "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver" - "github.com/pkg/errors" -) - -type Inspector struct { - raw []byte - rws readWriteSet -} - -func newInspector() *Inspector { - return &Inspector{ - rws: readWriteSet{ - readSet: readSet{ - orderedReads: map[string][]string{}, - reads: reads{}, - }, - writeSet: writeSet{ - orderedWrites: map[string][]string{}, - writes: writes{}, - }, - metaWriteSet: metaWriteSet{ - metawrites: namespaceKeyedMetaWrites{}, - }, - }, - } -} - -func (i *Inspector) Byte() ([]byte, error) { - return i.raw, nil -} - -func (i *Inspector) IsValid() error { - return nil -} - -func (i *Inspector) GetState(namespace driver.Namespace, key driver.PKey) (driver.RawValue, error) { - return i.rws.writeSet.get(namespace, key), nil -} - -func (i *Inspector) GetStateMetadata(namespace driver.Namespace, key driver.PKey) (driver.Metadata, error) { - return i.rws.metaWriteSet.get(namespace, key), nil -} - -func (i *Inspector) GetReadKeyAt(ns driver.Namespace, pos int) (string, error) { - key, in := i.rws.readSet.getAt(ns, pos) - if !in { - return "", errors.Errorf("no read at position %d for namespace %s", pos, ns) - } - return key, nil -} - -func (i *Inspector) GetReadAt(ns driver.Namespace, pos int) (driver.PKey, driver.RawValue, error) { - key, in := i.rws.readSet.getAt(ns, pos) - if !in { - return "", nil, errors.Errorf("no read at position %d for namespace %s", pos, ns) - } - - val, err := i.GetState(ns, key) - if err != nil { - return "", nil, err - } - - return key, val, nil -} - -func (i *Inspector) GetWriteAt(ns driver.Namespace, pos int) (driver.PKey, driver.RawValue, error) { - - key, in := i.rws.writeSet.getAt(ns, pos) - if !in { - return "", nil, errors.Errorf("no write at position %d for namespace %s", pos, ns) - } - - return key, i.rws.writeSet.get(ns, key), nil -} - -func (i *Inspector) NumReads(ns driver.Namespace) int { - return len(i.rws.reads[ns]) -} - -func (i *Inspector) NumWrites(ns driver.Namespace) int { - return len(i.rws.writes[ns]) -} - -func (i *Inspector) KeyExist(ns driver.Namespace, key driver.PKey) (bool, error) { - for pos := 0; pos < i.NumReads(ns); pos++ { - k, err := i.GetReadKeyAt(ns, pos) - if err != nil { - return false, errors.WithMessagef(err, "Error reading key at [%d]", pos) - } - if strings.Contains(k, key) { - return true, nil - } - } - return false, nil -} - -func (i *Inspector) Namespaces() []driver.Namespace { - mergedMaps := map[driver.Namespace]struct{}{} - - for ns := range i.rws.reads { - mergedMaps[ns] = struct{}{} - } - for ns := range i.rws.writes { - mergedMaps[ns] = struct{}{} - } - - namespaces := make([]driver.Namespace, 0, len(mergedMaps)) - for ns := range mergedMaps { - namespaces = append(namespaces, ns) - } - - return namespaces -} diff --git a/platform/fabric/services/weaver/relay/fabric/proof.go b/platform/fabric/services/weaver/relay/fabric/proof.go deleted file mode 100644 index f33233209..000000000 --- a/platform/fabric/services/weaver/relay/fabric/proof.go +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package fabric - -import ( - "encoding/base64" - "fmt" - - "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - "github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go/common" - fabric2 "github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go/fabric" - "github.com/hyperledger/fabric/protoutil" - "github.com/pkg/errors" -) - -// ProofMessage models a Relay proof for a Fabric Query -type ProofMessage struct { - B64ViewProto string - Address string -} - -// Proof models a Relay Proof generated from a Fabric a network -type Proof struct { - fns *fabric.NetworkService - ch *fabric.Channel - proof *ProofMessage - view *common.View - fv *fabric2.FabricView - rwset []byte - result []byte -} - -func NewProof(fns *fabric.NetworkService, ch *fabric.Channel, proof *ProofMessage) (*Proof, error) { - viewRaw, err := base64.StdEncoding.DecodeString(proof.B64ViewProto) - if err != nil { - return nil, errors.Wrapf(err, "failed decoding view proto [%s]", proof.B64ViewProto) - } - - view := &common.View{} - if err := proto.Unmarshal(viewRaw, view); err != nil { - return nil, errors.Wrapf(err, "failed unmarshalling view") - } - if view.Meta.Protocol != common.Meta_FABRIC { - return nil, errors.Errorf("invalid protocol, expected Meta_FABRIC, got [%d]", view.Meta.Protocol) - } - fv := &fabric2.FabricView{} - if err := proto.Unmarshal(view.Data, fv); err != nil { - return nil, errors.Wrapf(err, "failed unmarshalling view's data") - } - - respPayload, err := protoutil.UnmarshalChaincodeAction(fv.ProposalResponsePayload.Extension) - if err != nil { - err = errors.Errorf("GetChaincodeAction error %s", err) - return nil, err - } - - interopPayload := &common.InteropPayload{} - err = proto.Unmarshal(fv.Response.Payload, interopPayload) - if err != nil { - return nil, errors.Errorf("failed to unmarshal InteropPayload: %v", err) - } - - return &Proof{ - fns: fns, - ch: ch, - proof: proof, - view: view, - fv: fv, - rwset: respPayload.Results, - result: interopPayload.Payload, - }, nil -} - -// Verify checks the validity of this proof -func (p *Proof) Verify() error { - interopCCKey := fmt.Sprintf("weaver.interopcc.%s.name", p.ch.Name()) - namespace := p.fns.ConfigService().GetString(interopCCKey) - logger.Debugf("verify proof at [%s:%s:%s:%s]", p.fns.Name(), p.ch.Name(), namespace, interopCCKey) - _, err := p.ch.Chaincode(namespace).Query( - "VerifyView", p.proof.B64ViewProto, p.proof.Address, - ).WithInvokerIdentity( - p.fns.IdentityProvider().DefaultIdentity(), - ).Call() - if err != nil { - return errors.WithMessagef(err, "failed invoking interop chaincode [%s.%s.%s:%s]", p.fns.Name(), p.ch.Name(), namespace, "VerifyView") - } - return nil -} - -// IsOK return true if the result is valid -func (p *Proof) IsOK() bool { - return p.fv.Response.Status == OK -} - -// Result returns the response payload -func (p *Proof) Result() []byte { - return p.result -} - -// RWSet returns a wrapper over the Fabric rwset to inspect it -func (p *Proof) RWSet() (*Inspector, error) { - i := newInspector() - i.raw = p.rwset - if err := i.rws.populate(p.rwset, "ephemeral"); err != nil { - return nil, err - } - return i, nil -} diff --git a/platform/fabric/services/weaver/relay/fabric/query.go b/platform/fabric/services/weaver/relay/fabric/query.go deleted file mode 100644 index ba8c2eaab..000000000 --- a/platform/fabric/services/weaver/relay/fabric/query.go +++ /dev/null @@ -1,285 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package fabric - -import ( - "encoding/base64" - "encoding/json" - "fmt" - "net" - "strconv" - - "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - "github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/assert" - "github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go/common" - fabric2 "github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go/fabric" - "github.com/hyperledger-labs/weaver-dlt-interoperability/sdks/fabric/go-sdk/interoperablehelper" - "github.com/hyperledger-labs/weaver-dlt-interoperability/sdks/fabric/go-sdk/types" - "github.com/hyperledger/fabric-protos-go/msp" - "github.com/hyperledger/fabric/protoutil" - "github.com/pkg/errors" -) - -var logger = logging.MustGetLogger("weaver-relay-fabric") - -const ( - // OK constant - status code less than 400, endorser will endorse it. - // OK means init or invoke successfully. - OK = 200 -) - -// Result models the result of a query to a remote network using Relay -type Result struct { - address string - view *common.View - fv *fabric2.FabricView - rwset []byte - result []byte -} - -func NewResult(address string, view *common.View) (*Result, error) { - if view.Meta.Protocol != common.Meta_FABRIC { - return nil, errors.Errorf("invalid protocol, expected Meta_FABRIC, got [%d]", view.Meta.Protocol) - } - /* if view.Meta.SerializationFormat != "Protobuf" { - return nil, errors.Errorf("invalid serialization format, expected Protobuf, got [%s]", view.Meta.SerializationFormat) - }*/ - - fv := &fabric2.FabricView{} - if err := proto.Unmarshal(view.Data, fv); err != nil { - return nil, errors.Wrapf(err, "failed unmarshalling view's data") - } - - // TODO: check consistency with the requested query - respPayload, err := protoutil.UnmarshalChaincodeAction(fv.ProposalResponsePayload.Extension) - if err != nil { - err = errors.Errorf("GetChaincodeAction error %s", err) - return nil, err - } - - interopPayload := &common.InteropPayload{} - err = proto.Unmarshal(fv.Response.Payload, interopPayload) - if err != nil { - return nil, errors.Errorf("failed to unmarshal InteropPayload: %v", err) - } - - return &Result{ - address: address, - view: view, - fv: fv, - rwset: respPayload.Results, - result: interopPayload.Payload, - }, nil -} - -// IsOK return true if the result is valid -func (r *Result) IsOK() bool { - return r.fv.Response.Status == OK -} - -// Result returns the response payload -func (r *Result) Result() []byte { - return r.result -} - -// RWSet returns a wrapper over the Fabric rwset to inspect it -func (r *Result) RWSet() (*Inspector, error) { - i := newInspector() - i.raw = r.rwset - if err := i.rws.populate(r.rwset, "ephemeral"); err != nil { - return nil, err - } - return i, nil -} - -// Proof returns the marshalled version of the proof of validity accompanying this result -func (r *Result) Proof() ([]byte, error) { - viewRaw, err := proto.Marshal(r.view) - if err != nil { - return nil, errors.Wrapf(err, "failed marshalling view") - } - return json.Marshal(&ProofMessage{ - B64ViewProto: base64.StdEncoding.EncodeToString(viewRaw), - Address: r.address, - }) -} - -// Query models a query to a remote network using Relay -type Query struct { - localFNS *fabric.NetworkService - localChannel *fabric.Channel - remoteID *ID - remoteFunction string - remoteArgs []interface{} -} - -func NewQuery(fns *fabric.NetworkService, ch *fabric.Channel, remoteID *ID, function string, args []interface{}) *Query { - return &Query{ - localFNS: fns, - localChannel: ch, - remoteID: remoteID, - remoteFunction: function, - remoteArgs: args, - } -} - -// Call performs the query and return a result if no error occurred -func (q *Query) Call() (*Result, error) { - remoteRelayAddress := q.localFNS.ConfigService().GetString(fmt.Sprintf("weaver.remote.%s.address", q.remoteID.Network)) - - args, err := q.prepareArgs() - if err != nil { - return nil, errors.WithMessagef(err, "failed parsing arguments") - } - invokeObject := types.Query{ - Channel: q.remoteID.Channel, - ContractName: q.remoteID.Chaincode, - CcFunc: q.remoteFunction, - CcArgs: args, - } - specialAddress := createAddress( - invokeObject, - q.remoteID.Network, - remoteRelayAddress, - ) - interopJSON := types.InteropJSON{ - Address: specialAddress, - RemoteEndPoint: remoteRelayAddress, - Sign: true, - NetworkId: q.remoteID.Network, - ChannelId: q.remoteID.Channel, - ChaincodeId: q.remoteID.Chaincode, - ChaincodeFunc: q.remoteFunction, - CcArgs: args, - } - - me := q.localFNS.IdentityProvider().DefaultIdentity() - sigSvc := q.localFNS.SignerService() - signer, err := sigSvc.GetSigner(me) - if err != nil { - return nil, errors.WithMessagef(err, "failed getting signer for default identity [%s]", me) - } - - // TODO: replace with a higher level function - sID := &msp.SerializedIdentity{} - if err := proto.Unmarshal(me, sID); err != nil { - return nil, errors.Wrapf(err, "failed unmarshalling fabric identity") - } - - localRelayAddress := q.localFNS.ConfigService().GetString("weaver.relay.address") - hostRelayAddress, port, err := net.SplitHostPort(localRelayAddress) - assert.NoError(err, "failed splitting host and port: %s", localRelayAddress) - - isHostname := net.ParseIP(hostRelayAddress) == nil - _, resolverErr := net.LookupIP(hostRelayAddress) - unknownHostname := isHostname && resolverErr != nil - - if unknownHostname { - logger.Warnf("Local relay address %s (weaver.relay.address) is an unknown host, falling back to 127.0.0.1", hostRelayAddress) - localRelayAddress = net.JoinHostPort("127.0.0.1", port) - } - - key := fmt.Sprintf("weaver.interopcc.%s.name", q.localChannel.Name()) - namespace := q.localFNS.ConfigService().GetString(key) - logger.Debugf("InteropFlow [%s][%s][%s][%s:%s:%s]", localRelayAddress, remoteRelayAddress, specialAddress, namespace, key, q.localChannel.Name()) - views, _, err := interoperablehelper.InteropFlow( - &contract{ - fns: q.localFNS, - channel: q.localChannel.Name(), - namespace: namespace, - }, - q.localFNS.Name(), - invokeObject, - sID.Mspid, - localRelayAddress, - []int{1}, - []types.InteropJSON{interopJSON}, - signer, - string(sID.IdBytes), - true, - ) - if err != nil { - return nil, errors.Wrapf(err, "failed running interop view") - } - - return NewResult(specialAddress, views[0]) -} - -func (q *Query) prepareArgs() ([]string, error) { - var args []string - for _, arg := range q.remoteArgs { - b, err := q.argToString(arg) - if err != nil { - return nil, err - } - args = append(args, b) - } - return args, nil -} - -func (q *Query) argToString(arg interface{}) (string, error) { - switch v := arg.(type) { - case []byte: - return string(v), nil - case string: - return v, nil - case int: - return strconv.Itoa(v), nil - case int64: - return strconv.FormatInt(v, 10), nil - case uint64: - return strconv.FormatUint(v, 10), nil - default: - return "", errors.Errorf("arg type [%T] not recognized.", v) - } -} - -func createAddress(query types.Query, networkId, remoteURL string) string { - addressString := remoteURL + "/" + networkId + "/" + query.Channel + ":" + query.ContractName + ":" + query.CcFunc - for _, arg := range query.CcArgs { - addressString += ":" + arg - } - return addressString -} - -type contract struct { - fns *fabric.NetworkService - channel string - namespace string -} - -func (f contract) transact(functionName string, args ...string) ([]byte, error) { - var chaincodeArgs []interface{} - for _, arg := range args { - chaincodeArgs = append(chaincodeArgs, arg) - } - - channel, err := f.fns.Channel(f.channel) - if err != nil { - return nil, errors.WithMessagef(err, "failed getting channel [%s:%s]", f.fns.Name(), f.channel) - } - res, err := channel.Chaincode(f.namespace).Query( - functionName, chaincodeArgs..., - ).WithInvokerIdentity( - f.fns.IdentityProvider().DefaultIdentity(), - ).Call() - if err != nil { - return nil, errors.WithMessagef(err, "failed invoking interop chaincode [%s.%s.%s:%s]", f.fns.Name(), f.channel, f.namespace, functionName) - } - - return res, nil -} - -func (f contract) EvaluateTransaction(name string, args ...string) ([]byte, error) { - return f.transact(name, args...) -} - -func (f contract) SubmitTransaction(name string, args ...string) ([]byte, error) { - panic("we shouldn't use this") -} diff --git a/platform/fabric/services/weaver/relay/fabric/rwset.go b/platform/fabric/services/weaver/relay/fabric/rwset.go deleted file mode 100644 index 037d52fb6..000000000 --- a/platform/fabric/services/weaver/relay/fabric/rwset.go +++ /dev/null @@ -1,276 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package fabric - -import ( - "bytes" - "sort" - - "github.com/google/go-cmp/cmp" - "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/proto" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/keys" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/hash" - "github.com/hyperledger/fabric-protos-go/ledger/rwset" - "github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/rwsetutil" - "github.com/pkg/errors" -) - -type readWriteSet struct { - readSet - writeSet - metaWriteSet -} - -func (rws *readWriteSet) populate(rwsetBytes []byte, txid string) error { - txRWSet := &rwset.TxReadWriteSet{} - err := proto.Unmarshal(rwsetBytes, txRWSet) - if err != nil { - return errors.Wrapf(err, "provided invalid read-write set bytes for txid %s, unmarshal failed", txid) - } - - rwsIn, err := rwsetutil.TxRwSetFromProtoMsg(txRWSet) - if err != nil { - return errors.Wrapf(err, "provided invalid read-write set bytes for txid %s, TxRwSetFromProtoMsg failed", txid) - } - - for _, nsrws := range rwsIn.NsRwSets { - ns := nsrws.NameSpace - - for _, read := range nsrws.KvRwSet.Reads { - bn := uint64(0) - txn := uint64(0) - if read.Version != nil { - bn = read.Version.BlockNum - txn = read.Version.TxNum - } - rws.readSet.add(ns, read.Key, bn, txn) - } - - for _, write := range nsrws.KvRwSet.Writes { - if err := rws.writeSet.add(ns, write.Key, write.Value); err != nil { - return err - } - } - - for _, metaWrite := range nsrws.KvRwSet.MetadataWrites { - metadata := map[string][]byte{} - for _, entry := range metaWrite.Entries { - metadata[entry.Name] = append([]byte(nil), entry.Value...) - } - - if err := rws.metaWriteSet.add(ns, metaWrite.Key, metadata); err != nil { - return err - } - } - } - - return nil -} - -type metaWrites map[string][]byte - -func (r metaWrites) Equals(o metaWrites) error { - if len(r) != len(o) { - return errors.Errorf("number of meta writes do not match [%v]!=[%v]", len(r), len(o)) - } - - for k, v := range r { - v2, ok := o[k] - if !ok { - return errors.Errorf("read not found [%s]", k) - } - if !bytes.Equal(v, v2) { - return errors.Errorf("writes for [%s] do not match [%v]!=[%v]", k, hash.Hashable(v), hash.Hashable(v2)) - } - } - - return nil -} - -type keyedMetaWrites map[string]metaWrites - -func (r keyedMetaWrites) Equals(o keyedMetaWrites) error { - rKeys := r.keys() - sort.Strings(rKeys) - oKeys := o.keys() - sort.Strings(oKeys) - if diff := cmp.Diff(rKeys, oKeys); len(diff) != 0 { - return errors.Errorf("namespaces do not match [%s]", diff) - } - - for _, key := range rKeys { - if err := r[key].Equals(o[key]); err != nil { - return errors.Wrapf(err, "meta writes for key [%s] do not match", key) - } - } - - return nil -} - -func (r keyedMetaWrites) keys() []string { - var res []string - for k := range r { - res = append(res, k) - } - return res -} - -type namespaceKeyedMetaWrites map[string]keyedMetaWrites - -type metaWriteSet struct { - metawrites namespaceKeyedMetaWrites -} - -func (w *metaWriteSet) add(ns, key string, meta map[string][]byte) error { - if err := keys.ValidateNs(ns); err != nil { - return err - } - - nsMap, in := w.metawrites[ns] - if !in { - nsMap = keyedMetaWrites{} - w.metawrites[ns] = nsMap - } - - metadata := map[string][]byte{} - for k, v := range meta { - metadata[k] = append([]byte(nil), v...) - } - - nsMap[key] = metadata - - return nil -} - -func (w *metaWriteSet) get(ns, key string) map[string][]byte { - return w.metawrites[ns][key] -} - -type namespaceWrites map[string][]byte - -func (r namespaceWrites) Keys() []string { - var keys []string - for k := range r { - keys = append(keys, k) - } - return keys -} - -func (r namespaceWrites) Equals(o namespaceWrites) error { - if len(r) != len(o) { - return errors.Errorf("number of writes do not match [%d]!=[%d], [%v]!=[%v]", len(r), len(o), r.Keys(), o.Keys()) - } - - for k, v := range r { - v2, ok := o[k] - if !ok { - return errors.Errorf("read not found [%s]", k) - } - if !bytes.Equal(v, v2) { - return errors.Errorf("writes for [%s] do not match [%v]!=[%v]", k, hash.Hashable(v), hash.Hashable(v2)) - } - } - - return nil -} - -type writes map[string]namespaceWrites - -type writeSet struct { - writes writes - orderedWrites map[string][]string -} - -func (w *writeSet) add(ns, key string, value []byte) error { - if err := keys.ValidateNs(ns); err != nil { - return err - } - - nsMap, in := w.writes[ns] - if !in { - nsMap = map[string][]byte{} - - w.writes[ns] = nsMap - w.orderedWrites[ns] = make([]string, 0, 8) - } - - nsMap[key] = append([]byte(nil), value...) - w.orderedWrites[ns] = append(w.orderedWrites[ns], key) - - return nil -} - -func (w *writeSet) get(ns, key string) []byte { - return w.writes[ns][key] -} - -func (w *writeSet) getAt(ns string, i int) (key string, in bool) { - slice := w.orderedWrites[ns] - if i < 0 || i > len(slice)-1 { - return "", false - } - - return slice[i], true -} - -type namespaceReads map[string]struct { - block uint64 - txnum uint64 -} - -func (r namespaceReads) Equals(o namespaceReads) error { - if len(r) != len(o) { - return errors.Errorf("number of reads do not match [%v]!=[%v]", len(r), len(o)) - } - - for k, v := range r { - v2, ok := o[k] - if !ok { - return errors.Errorf("read not found [%s]", k) - } - if v.block != v2.block || v.txnum != v2.txnum { - return errors.Errorf("reads for [%s] do not match [%d,%d]!=[%d,%d]", k, v.block, v.txnum, v2.block, v2.txnum) - } - } - - return nil -} - -type reads map[string]namespaceReads - -type readSet struct { - reads reads - orderedReads map[string][]string -} - -func (r *readSet) add(ns, key string, block, txnum uint64) { - nsMap, in := r.reads[ns] - if !in { - nsMap = make(map[string]struct { - block uint64 - txnum uint64 - }) - - r.reads[ns] = nsMap - r.orderedReads[ns] = make([]string, 0, 8) - } - - nsMap[key] = struct { - block uint64 - txnum uint64 - }{block, txnum} - r.orderedReads[ns] = append(r.orderedReads[ns], key) -} - -func (r *readSet) getAt(ns string, i int) (key string, in bool) { - slice := r.orderedReads[ns] - if i < 0 || i > len(slice)-1 { - return "", false - } - - return slice[i], true -} diff --git a/platform/fabric/services/weaver/relay/fabric/url.go b/platform/fabric/services/weaver/relay/fabric/url.go deleted file mode 100644 index a30f8b3a9..000000000 --- a/platform/fabric/services/weaver/relay/fabric/url.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package fabric - -import ( - url2 "net/url" - "strings" - - "github.com/pkg/errors" -) - -type ID struct { - Network string - Channel string - Chaincode string -} - -// URLToID converts a Fabric url ('fabric://../`) to its components -func URLToID(url string) (*ID, error) { - u, err := url2.Parse(url) - if err != nil { - return nil, errors.Wrapf(err, "failed parsing url") - } - if u.Scheme != "fabric" { - return nil, errors.Errorf("invalid scheme, expected fabric, got [%s]", u.Scheme) - } - - res := strings.Split(u.Host, ".") - if len(res) != 3 { - return nil, errors.Errorf("invalid host, expected 3 components, found [%d,%v]", len(res), res) - } - return &ID{ - Network: res[0], Channel: res[1], Chaincode: res[2], - }, nil -} diff --git a/platform/fabric/services/weaver/weaver.go b/platform/fabric/services/weaver/weaver.go deleted file mode 100644 index 567b0164f..000000000 --- a/platform/fabric/services/weaver/weaver.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package weaver - -import ( - "reflect" - "sync" - - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - view2 "github.com/hyperledger-labs/fabric-smart-client/platform/view" -) - -type provider struct { - mutex sync.Mutex - relays map[string]*Relay -} - -func NewProvider() *provider { - return &provider{relays: make(map[string]*Relay)} -} - -// Relay returns the instance of the Relay service associated to the passed fabric network service -func (w *provider) Relay(fns *fabric.NetworkService) *Relay { - if fns == nil { - panic("expected a fabric network service, got nil") - } - - w.mutex.Lock() - defer w.mutex.Unlock() - - r, ok := w.relays[fns.Name()] - if !ok { - r = &Relay{ - fns: fns, - } - w.relays[fns.Name()] = r - } - return r -} - -// GetProvider returns the provider of weaver-related services -func GetProvider(sp view2.ServiceProvider) *provider { - s, err := sp.GetService(reflect.TypeOf((*provider)(nil))) - if err != nil { - panic(err) - } - return s.(*provider) -} diff --git a/samples/README.md b/samples/README.md index d49f31376..c8b3de6f7 100644 --- a/samples/README.md +++ b/samples/README.md @@ -8,9 +8,6 @@ Fabric Smart Client repository folder (`$FSC_PATH`). - [`I Owe You`](./fabric/iou/README.md): In this example, we orchestrate a simple `I Owe You` use case between a `lender` and a `borrower`, mediated by an `approver`. -- [`Fabric to Fabric Interoperability via Weaver Relay`](./fabric/weaver/relay/README.md): In this example, we see how to use - the [weaver relay infrastructure](https://labs.hyperledger.org/weaver-dlt-interoperability/docs/external/architecture-and-design/relay) - to perform queries between two Fabric networks. - [`Institutional Review Board (IRB) Sample`](https://github.com/hyperledger/fabric-private-chaincode/tree/main/samples/demos/irb): This demos shows how to use Fabric Private Chaincode in combination with Fabric Smart Clients. diff --git a/samples/fabric/weaver/relay/.gitignore b/samples/fabric/weaver/relay/.gitignore deleted file mode 100644 index 19c19ffbc..000000000 --- a/samples/fabric/weaver/relay/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -cmd/ -testdata/ -relay diff --git a/samples/fabric/weaver/relay/README.md b/samples/fabric/weaver/relay/README.md deleted file mode 100644 index 18d23db85..000000000 --- a/samples/fabric/weaver/relay/README.md +++ /dev/null @@ -1,337 +0,0 @@ -# Fabric to Fabric Interoperability view Weaver Relay - -[Weaver](https://labs.hyperledger.org/weaver-dlt-interoperability/docs/external/architecture-and-design/overview) -is a platform, a protocol suite, and a set of tools, to enable interoperation for data sharing and asset -movements between independent networks built on heterogeneous blockchain, or more generally, distributed ledger, -technologies, in a manner that preserves the core blockchain tenets of decentralization and security. - -In this sample, we will deal with two Fabric networks connected via weaver relays. -Each Fabric network is deployed with a chaincode that implements a simple KVS. -Business parties will be able to interact directly with the `local` chaincode on the Fabric network -they belong to, but also to connect to the `remote` chaincode on the other Fabric network using weaver. - -## KVS Chaincode - -Let us start by defining the chaincode that will be used on both Fabric networks. - -It uses the go contract api to define a simple key-value store. Here is the code: - -```go -type SmartContract struct { -contractapi.Contract -} - -func (s *SmartContract) Put(ctx contractapi.TransactionContextInterface, key string, value string) error { -return ctx.GetStub().PutState(key, []byte(value)) -} - -func (s *SmartContract) Get(ctx contractapi.TransactionContextInterface, key string) (string, error) { -v, err := ctx.GetStub().GetState(key) -if err != nil { -return "", errors.Wrapf(err, "failed getting state [%s]", key) -} -err = ctx.GetStub().PutState(key, v) -if err != nil { -return "", errors.Wrapf(err, "failed putting state [%s:%s]", key, string(v)) -} -if len(v) == 0 { -return "", nil -} -return string(v), nil -} - -func main() { -chaincode, err := contractapi.NewChaincode(new(SmartContract)) -if err != nil { -log.Panicf("Error create chaincode: %v", err) -} - -if err := chaincode.Start(); err != nil { -log.Panicf("Error starting asset chaincode: %v", err) -} -} -``` - -## Business Views - -To manage the `local` KVS, we will use the following business views: - -The following view is used to store or put a key-value pair in the `local` KVS. - -```go -type LocalPut struct { - Chaincode string - Key string - Value string -} - -type LocalPutView struct { - *LocalPut -} - -func (p *LocalPutView) Call(context view.Context) (interface{}, error) { - // Invoke the passed chaincode to put the key/value pair - txID, _, err := fabric.GetDefaultChannel(context).Chaincode(p.Chaincode).Invoke( - "Put", p.Key, p.Value, - ).Call() - assert.NoError(err, "failed to put key %s", p.Key) - - // return the transaction id - return txID, nil -} -``` - -This view is used to retrieve a key pair from the `local` KVS instead. - -```go -type LocalGet struct { - Chaincode string - Key string -} - -type LocalGetView struct { - *LocalGet -} - -func (g *LocalGetView) Call(context view.Context) (interface{}, error) { - // Invoke the passed chaincode to get the value corresponding to the passed key - v, err := fabric.GetDefaultChannel(context).Chaincode(g.Chaincode).Query( - "Get", g.Key, - ).Call() - assert.NoError(err, "failed to get key %s", g.Key) - - return v, nil -} -``` - -To query a key pair from the `remote` KVS, we will use the following business view: - -```go -type RemoteGet struct { - Network string - Channel string - Chaincode string - Key string -} - -type RemoteGetView struct { - *RemoteGet -} - -func (g *RemoteGetView) Call(context view.Context) (interface{}, error) { - // Get a weaver client to the relay of the given network - relay := weaver.GetProvider(context).Relay(fabric.GetDefaultFNS(context)) - - // Build a query to the remote Fabric network. - // Invoke the `Get` function on the passed key, on the passed chaincode deployed on the passed network and channel. - query, err := relay.ToFabric().Query( - fmt.Sprintf("fabric://%s.%s.%s/", g.Network, g.Channel, g.Chaincode), - "Get", g.Key, - ) - assert.NoError(err, "failed creating fabric query") - - // Perform the query - res, err := query.Call() - assert.NoError(err, "failed querying remote destination") - assert.NotNil(res, "result should be non-empty") - - // Validate the proof accompanying the result - proofRaw, err := res.Proof() - assert.NoError(err, "failed getting proof from query result") - proof, err := relay.ToFabric().ProofFromBytes(proofRaw) - assert.NoError(err, "failed unmarshalling proof") - assert.NoError(proof.Verify(), "failed verifying proof") - - // Inspect the content - assert.Equal(res.Result(), proof.Result(), "result should be equal, got [%s]!=[%s]", string(res.Result()), string(proof.Result())) - rwset1, err := res.RWSet() - assert.NoError(err, "failed getting rwset from result") - rwset2, err := proof.RWSet() - assert.NoError(err, "failed getting rwset from proof") - v1, err := rwset1.GetState(g.Chaincode, g.Key) - assert.NoError(err, "failed getting key's value from rwset1") - v2, err := rwset2.GetState(g.Chaincode, g.Key) - assert.NoError(err, "failed getting key's value from rwset2") - assert.Equal(v1, v2, "excepted same write [%s]!=[%s]", string(v1), string(v2)) - - // return the value of the key, empty if not found - return v1, nil -} -``` - -## Testing - -To run the sample, one needs first to deploy the `Fabric Smart Client nodes`, the `Fabric networks`, and the `Weaver Relay Network`. -Once these networks are deployed, one can invoke views on the smart client nodes. - -So, first step is to describe the topology of the networks we need. - -Make sure you have the proper docker images by running `make weaver-docker-image` from the FSC root folder. - -### Describe the topology of the networks - -To test the above views, we first describe the topology of the networks we need. -Namely, Fabric, FSC, and Weaver Relay networks. - -For Fabric, we need two networks. Each network consists of: -- Two organizations, one of which is responsible for the endorsement of the chaincode that implements the KVS; -- One channel, `testchannel`; -- One chaincode implementing the KVS; - -For the FSC network, we have a topology with: -1. 2 FCS nodes. One for Alice and one for Bob. -2. Alice is also a member of the first Fabric network. Bob is a member of the second Fabric network. - -For the Weaver Relay network, we have a topology with: -- One Weaver Relay node per Fabric network, connected to each other. - -We can describe the network topology programmatically as follows: - -```go -func Topology() []api.Topology { -// Define two Fabric topologies -f1Topology := fabric.NewTopologyWithName("alpha") -f1Topology.AddOrganizationsByName("Org1", "Org2") -f1Topology.SetNamespaceApproverOrgs("Org1") -f1Topology.AddNamespaceWithUnanimity("ns1", "Org1").SetChaincodePath( -"github.com/hyperledger-labs/fabric-smart-client/samples/fabric/weaver/relay/chaincode", -).NoInit() - -f2Topology := fabric.NewTopologyWithName("beta") -f2Topology.EnableGRPCLogging() -f2Topology.AddOrganizationsByName("Org3", "Org4") -f2Topology.SetNamespaceApproverOrgs("Org3") -f2Topology.AddNamespaceWithUnanimity("ns2", "Org3").SetChaincodePath( -"github.com/hyperledger-labs/fabric-smart-client/samples/fabric/weaver/relay/chaincode", -).NoInit() - -// Define weaver relay server topology. One relay server per Fabric network -wTopology := weaver.NewTopology() -wTopology.AddRelayServer(f1Topology, "Org1").AddFabricNetwork(f2Topology) -wTopology.AddRelayServer(f2Topology, "Org3").AddFabricNetwork(f1Topology) - -// Define an FSC topology with 2 FCS nodes. -fscTopology := fsc.NewTopology() - -// Add alice's FSC node -alice := fscTopology.AddNodeByName("alice") -alice.AddOptions( -fabric.WithDefaultNetwork("alpha"), -fabric.WithNetworkOrganization("alpha", "Org1"), -) -alice.RegisterViewFactory("put", &views.LocalPutViewFactory{}) -alice.RegisterViewFactory("get", &views.LocalGetViewFactory{}) -alice.RegisterViewFactory("remoteGet", &views.RemoteGetViewFactory{}) - -// Add bob's FSC node -bob := fscTopology.AddNodeByName("bob") -bob.AddOptions( -fabric.WithDefaultNetwork("beta"), -fabric.WithNetworkOrganization("beta", "Org3"), -) -bob.RegisterViewFactory("put", &views.LocalPutViewFactory{}) -bob.RegisterViewFactory("get", &views.LocalGetViewFactory{}) -bob.RegisterViewFactory("remoteGet", &views.RemoteGetViewFactory{}) - -return []api.Topology{f1Topology, f2Topology, wTopology, fscTopology} -} -``` - -### Boostrap the networks - -Bootstrap of the networks requires Fabric binaries - -To ensure you have the required fabric binary files and set the `FAB_BINS` environment variable to the correct place you can do the following in the project root directory - -```shell -make download-fabric -export FAB_BINS=$PWD/../fabric/bin -``` - -To help us bootstrap the networks and then invoke the business views, the `relay` command line tool is provided. -To build it, we need to run the following command from the folder `$FSC_PATH/samples/fabric/weaver/relay`. -(`$FSC_PATH` refers to the Fabric Smart Client repository in your filesystem see [getting started](../../../../README.md#getting-started)) - -```shell -go build -o relay -``` - -If the compilation is successful, we can run the `relay` command line tool as follows: - -```shell -./relay network start --path ./testdata -``` - -The above command will start the networks, -and store all configuration files under the `./testdata` directory. -The CLI will also create the folder `./cmd` that contains a go main file for each FSC node. -The CLI compiles these go main files and then runs them. - -If everything is successful, you will see something like the following: - -```shell -2022-02-21 15:22:10.855 UTC [nwo.network] Start -> INFO 02b _____ _ _ ____ -2022-02-21 15:22:10.855 UTC [nwo.network] Start -> INFO 02c | ____| | \ | | | _ \ -2022-02-21 15:22:10.855 UTC [nwo.network] Start -> INFO 02d | _| | \| | | | | | -2022-02-21 15:22:10.855 UTC [nwo.network] Start -> INFO 02e | |___ | |\ | | |_| | -2022-02-21 15:22:10.855 UTC [nwo.network] Start -> INFO 02f |_____| |_| \_| |____/ -2022-02-21 15:22:10.855 UTC [fsc.integration] Serve -> INFO 030 All GOOD, networks up and running... -2022-02-21 15:22:10.855 UTC [fsc.integration] Serve -> INFO 031 If you want to shut down the networks, press CTRL+C -2022-02-21 15:22:10.856 UTC [fsc.integration] Serve -> INFO 032 Open another terminal to interact with the networks -``` - -To shut down the networks, just press CTRL-C. - -If you want to restart the networks after the shutdown, you can just re-run the above command. -If you don't delete the `./testdata` directory, the network will be started from the previous state. - -Before restarting the networks, one can modify the business views to add new functionalities, to fix bugs, and so on. -Upon restarting the networks, the new business views will be available. -Later on, we will see an example of this. - -To clean up all artifacts, we can run the following command: - -```shell -./relay network clean --path ./testdata -``` - -The `./testdata` and `./cmd` folders will be deleted. - -### Invoke the business views - -We start with Alice. Alice stores a key-value pair in her local KVS (the one in the Fabric network Alice has an identity for). - -```go -./relay view -c ./testdata/fsc/nodes/alice.0/client-config.yaml -f put -i "{\"Chaincode\":\"ns1\", \"Key\":\"pineapple\", \"Value\":\"sweet\"}" -``` - -The above command will output the transaction id of the transaction that Alice has produced. - -```shell -"d3dd351f8690654be660ae2f44c0807f3a8017b6c502a79dd2aa8108ff0ef69f" -``` - -Then, Alice checks the value of her key is actually in her local KVS. - -```go -./relay view -c ./testdata/fsc/nodes/alice.0/client-config.yaml -f get -i "{\"Chaincode\":\"ns1\", \"Key\":\"pineapple\"}" -``` - -If everything is successful, you will see the value corresponding to the requested key: - -```shell -sweet -``` - -At this point, Bob can query Alice's key. Recall that, Bob does not have a valid identity in the Fabric network where Alice has an identity. -Therefore, Bob cannot call the chaincode directly. Though, Bob can perform that query using Weaver and by invoking the `RemoteGetView` view. - -```go -./relay view -c ./testdata/fsc/nodes/bob.0/client-config.yaml -f remoteGet -i "{\"Network\":\"alpha\",\"Channel\":\"testchannel\",\"Chaincode\":\"ns1\", \"Key\":\"pineapple\"}" -``` - -Again, if everything is successful, you will see the value corresponding to the requested key: - -```shell -sweet -``` diff --git a/samples/fabric/weaver/relay/chaincode/storage.go b/samples/fabric/weaver/relay/chaincode/storage.go deleted file mode 100644 index 54fefa053..000000000 --- a/samples/fabric/weaver/relay/chaincode/storage.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package main - -import ( - "log" - - "github.com/hyperledger/fabric-contract-api-go/contractapi" - "github.com/pkg/errors" -) - -type SmartContract struct { - contractapi.Contract -} - -func (s *SmartContract) Put(ctx contractapi.TransactionContextInterface, key string, value string) error { - return ctx.GetStub().PutState(key, []byte(value)) -} - -func (s *SmartContract) Get(ctx contractapi.TransactionContextInterface, key string) (string, error) { - v, err := ctx.GetStub().GetState(key) - if err != nil { - return "", errors.Wrapf(err, "failed getting state [%s]", key) - } - err = ctx.GetStub().PutState(key, v) - if err != nil { - return "", errors.Wrapf(err, "failed putting state [%s:%s]", key, string(v)) - } - if len(v) == 0 { - return "", nil - } - return string(v), nil -} - -func main() { - chaincode, err := contractapi.NewChaincode(new(SmartContract)) - if err != nil { - log.Panicf("Error create chaincode: %v", err) - } - - if err := chaincode.Start(); err != nil { - log.Panicf("Error starting asset chaincode: %v", err) - } -} diff --git a/samples/fabric/weaver/relay/relay.go b/samples/fabric/weaver/relay/relay.go deleted file mode 100644 index f9d07e1fc..000000000 --- a/samples/fabric/weaver/relay/relay.go +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright IBM Corp All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package main - -import ( - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/cmd" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/cmd/network" - view "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/client/view/cmd" - "github.com/hyperledger-labs/fabric-smart-client/samples/fabric/weaver/relay/topology" -) - -func main() { - m := cmd.NewMain("Fabric2Fabric Interoperability", "0.1") - mainCmd := m.Cmd() - mainCmd.AddCommand(network.NewCmd(topology.Topology()...)) - mainCmd.AddCommand(view.NewCmd()) - m.Execute() -} diff --git a/samples/fabric/weaver/relay/topology/topology.go b/samples/fabric/weaver/relay/topology/topology.go deleted file mode 100644 index f9b177ee3..000000000 --- a/samples/fabric/weaver/relay/topology/topology.go +++ /dev/null @@ -1,72 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package topology - -import ( - "os" - - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/api" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc" - "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/weaver" - fabricsdk "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/sdk/dig" - "github.com/hyperledger-labs/fabric-smart-client/samples/fabric/weaver/relay/views" -) - -func Topology() []api.Topology { - // Define two Fabric topologies - f1Topology := fabric.NewTopologyWithName("alpha") - f1Topology.AddOrganizationsByName("Org1", "Org2") - f1Topology.SetNamespaceApproverOrgs("Org1") - f1Topology.AddNamespaceWithUnanimity("ns1", "Org1").SetChaincodePath( - "github.com/hyperledger-labs/fabric-smart-client/samples/fabric/weaver/relay/chaincode", - ).NoInit() - - f2Topology := fabric.NewTopologyWithName("beta") - f2Topology.EnableGRPCLogging() - f2Topology.AddOrganizationsByName("Org3", "Org4") - f2Topology.SetNamespaceApproverOrgs("Org3") - f2Topology.AddNamespaceWithUnanimity("ns2", "Org3").SetChaincodePath( - "github.com/hyperledger-labs/fabric-smart-client/samples/fabric/weaver/relay/chaincode", - ).NoInit() - - // Define weaver relay server topology. One relay server per Fabric network - wTopology := weaver.NewTopology() - wTopology.AddRelayServer(f1Topology, "Org1").AddFabricNetwork(f2Topology) - wTopology.AddRelayServer(f2Topology, "Org3").AddFabricNetwork(f1Topology) - - // Define an FSC topology with 2 FCS nodes. - fscTopology := fsc.NewTopology() - if p2pCommunicationType := os.Getenv("FSC_P2P_COMMUNICATION_TYPE"); len(p2pCommunicationType) > 0 { - fscTopology.P2PCommunicationType = p2pCommunicationType - } - - // Add alice's FSC node - alice := fscTopology.AddNodeByName("alice") - alice.AddOptions( - fabric.WithDefaultNetwork("alpha"), - fabric.WithNetworkOrganization("alpha", "Org1"), - ) - alice.RegisterViewFactory("put", &views.LocalPutViewFactory{}) - alice.RegisterViewFactory("get", &views.LocalGetViewFactory{}) - alice.RegisterViewFactory("remoteGet", &views.RemoteGetViewFactory{}) - - // Add bob's FSC node - bob := fscTopology.AddNodeByName("bob") - bob.AddOptions( - fabric.WithDefaultNetwork("beta"), - fabric.WithNetworkOrganization("beta", "Org3"), - ) - bob.RegisterViewFactory("put", &views.LocalPutViewFactory{}) - bob.RegisterViewFactory("get", &views.LocalGetViewFactory{}) - bob.RegisterViewFactory("remoteGet", &views.RemoteGetViewFactory{}) - - // Add Fabric SDK to FSC Nodes - fscTopology.AddSDK(&fabricsdk.SDK{}) - - return []api.Topology{f1Topology, f2Topology, wTopology, fscTopology} -} diff --git a/samples/fabric/weaver/relay/views/local.go b/samples/fabric/weaver/relay/views/local.go deleted file mode 100644 index 8b6eef63f..000000000 --- a/samples/fabric/weaver/relay/views/local.go +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package views - -import ( - "encoding/json" - - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/assert" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" -) - -type LocalPut struct { - Chaincode string - Key string - Value string -} - -type LocalPutView struct { - *LocalPut -} - -func (p *LocalPutView) Call(context view.Context) (interface{}, error) { - // Invoke the passed chaincode to put the key/value pair - _, ch, err := fabric.GetDefaultChannel(context) - assert.NoError(err) - txID, _, err := ch.Chaincode(p.Chaincode).Invoke( - "Put", p.Key, p.Value, - ).Call() - assert.NoError(err, "failed to put key %s", p.Key) - - // return the transaction id - return txID, nil -} - -type LocalPutViewFactory struct{} - -func (p *LocalPutViewFactory) NewView(in []byte) (view.View, error) { - f := &LocalPutView{} - assert.NoError(json.Unmarshal(in, &f.LocalPut)) - return f, nil -} - -type LocalGet struct { - Chaincode string - Key string -} - -type LocalGetView struct { - *LocalGet -} - -func (g *LocalGetView) Call(context view.Context) (interface{}, error) { - // Invoke the passed chaincode to get the value corresponding to the passed key - _, ch, err := fabric.GetDefaultChannel(context) - assert.NoError(err) - v, err := ch.Chaincode(g.Chaincode).Query( - "Get", g.Key, - ).Call() - assert.NoError(err, "failed to get key %s", g.Key) - - return v, nil -} - -type LocalGetViewFactory struct{} - -func (p *LocalGetViewFactory) NewView(in []byte) (view.View, error) { - f := &LocalGetView{} - assert.NoError(json.Unmarshal(in, &f.LocalGet)) - return f, nil -} diff --git a/samples/fabric/weaver/relay/views/remote.go b/samples/fabric/weaver/relay/views/remote.go deleted file mode 100644 index 43c83b79c..000000000 --- a/samples/fabric/weaver/relay/views/remote.go +++ /dev/null @@ -1,78 +0,0 @@ -/* -Copyright IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ - -package views - -import ( - "encoding/json" - "fmt" - - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric" - "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/services/weaver" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/assert" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/view" -) - -type RemoteGet struct { - Network string - Channel string - Chaincode string - Key string -} - -type RemoteGetView struct { - *RemoteGet -} - -func (g *RemoteGetView) Call(context view.Context) (interface{}, error) { - // Get a weaver client to the relay of the given network - fns, err := fabric.GetDefaultFNS(context) - assert.NoError(err) - relay := weaver.GetProvider(context).Relay(fns) - - // Build a query to the remote Fabric network. - // Invoke the `Get` function on the passed key, on the passed chaincode deployed on the passed network and channel. - query, err := relay.ToFabric().Query( - fmt.Sprintf("fabric://%s.%s.%s/", g.Network, g.Channel, g.Chaincode), - "Get", g.Key, - ) - assert.NoError(err, "failed creating fabric query") - - // Perform the query - res, err := query.Call() - assert.NoError(err, "failed querying remote destination") - assert.NotNil(res, "result should be non-empty") - - // Validate the proof accompanying the result - proofRaw, err := res.Proof() - assert.NoError(err, "failed getting proof from query result") - proof, err := relay.ToFabric().ProofFromBytes(proofRaw) - assert.NoError(err, "failed unmarshalling proof") - assert.NoError(proof.Verify(), "failed verifying proof") - - // Inspect the content - assert.Equal(res.Result(), proof.Result(), "result should be equal, got [%s]!=[%s]", string(res.Result()), string(proof.Result())) - rwset1, err := res.RWSet() - assert.NoError(err, "failed getting rwset from result") - rwset2, err := proof.RWSet() - assert.NoError(err, "failed getting rwset from proof") - v1, err := rwset1.GetState(g.Chaincode, g.Key) - assert.NoError(err, "failed getting key's value from rwset1") - v2, err := rwset2.GetState(g.Chaincode, g.Key) - assert.NoError(err, "failed getting key's value from rwset2") - assert.Equal(v1, v2, "excepted same write [%s]!=[%s]", string(v1), string(v2)) - - // return the value of the key, empty if not found - return v1, nil -} - -type RemoteGetViewFactory struct{} - -func (p *RemoteGetViewFactory) NewView(in []byte) (view.View, error) { - f := &RemoteGetView{} - assert.NoError(json.Unmarshal(in, &f.RemoteGet)) - return f, nil -} diff --git a/tools/go.mod b/tools/go.mod index 079cd45f8..3c97fcd51 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -1,6 +1,8 @@ module tools -go 1.22.6 +go 1.23.1 + +toolchain go1.23.5 require ( github.com/client9/misspell v0.3.4