From 9792ba2f29a3c763c055f86ca995b72801b2c65f Mon Sep 17 00:00:00 2001 From: AstaFrode Date: Fri, 15 Sep 2023 10:47:47 +0800 Subject: [PATCH 1/2] update grpc --- core/node.go | 18 +- core/pois.go | 24 +-- core/pois_p2p.go | 23 +- go.mod | 21 +- go.sum | 43 ++-- pb/pois-api.pb.go | 432 ++++++++++++++++++++------------------ pb/pois-api.proto | 1 + pb/pois-service-api.proto | 5 +- 8 files changed, 274 insertions(+), 293 deletions(-) diff --git a/core/node.go b/core/node.go index 1fcc6e4..6497e42 100644 --- a/core/node.go +++ b/core/node.go @@ -138,20 +138,14 @@ type P2P interface { // PoisMinerCommitGenChall PoisMinerCommitGenChall( addr string, - accountKey []byte, - commit *pb.Commits, - minerPoisInfo *pb.MinerPoisInfo, - minerSign []byte, + commitGenChall *pb.RequestMinerCommitGenChall, timeout time.Duration, ) (*pb.Challenge, error) // PoisVerifyCommitProof PoisVerifyCommitProof( addr string, - accountKey []byte, - commitProofGroup *pb.CommitProofGroup, - accProof *pb.AccProof, - minerSign []byte, + verifyCommitAndAccProof *pb.RequestVerifyCommitAndAccProof, timeout time.Duration, ) (*pb.ResponseVerifyCommitOrDeletionProof, error) @@ -219,17 +213,13 @@ type P2P interface { PoisMinerCommitGenChallP2P( peerid peer.ID, - accountKey []byte, - commit *pb.Commits, + commitGenChall *pb.RequestMinerCommitGenChall, timeout time.Duration, ) (*pb.Challenge, error) PoisVerifyCommitProofP2P( peerid peer.ID, - accountKey []byte, - commitProofGroup *pb.CommitProofGroup, - accProof *pb.AccProof, - minerSign []byte, + verifyCommitAndAccProof *pb.RequestVerifyCommitAndAccProof, timeout time.Duration, ) (*pb.ResponseVerifyCommitOrDeletionProof, error) diff --git a/core/pois.go b/core/pois.go index 23c4de6..d87ee33 100644 --- a/core/pois.go +++ b/core/pois.go @@ -45,10 +45,7 @@ func (n *Node) PoisGetMinerInitParam(addr string, accountKey []byte, timeout tim func (n *Node) PoisMinerCommitGenChall( addr string, - accountKey []byte, - commit *pb.Commits, - minerPoisInfo *pb.MinerPoisInfo, - minerSign []byte, + commitGenChall *pb.RequestMinerCommitGenChall, timeout time.Duration, ) (*pb.Challenge, error) { conn, err := grpc.Dial( @@ -64,21 +61,13 @@ func (n *Node) PoisMinerCommitGenChall( ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() - result, err := c.RequestMinerCommitGenChall(ctx, &pb.RequestMinerCommitGenChall{ - MinerId: accountKey, - Commit: commit, - PoisInfo: minerPoisInfo, - MinerSign: minerSign, - }) + result, err := c.RequestMinerCommitGenChall(ctx, commitGenChall) return result, err } func (n *Node) PoisVerifyCommitProof( addr string, - accountKey []byte, - commitProofGroup *pb.CommitProofGroup, - accProof *pb.AccProof, - minerSign []byte, + verifyCommitAndAccProof *pb.RequestVerifyCommitAndAccProof, timeout time.Duration, ) (*pb.ResponseVerifyCommitOrDeletionProof, error) { conn, err := grpc.Dial( @@ -94,12 +83,7 @@ func (n *Node) PoisVerifyCommitProof( ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() - result, err := c.RequestVerifyCommitProof(ctx, &pb.RequestVerifyCommitAndAccProof{ - CommitProofGroup: commitProofGroup, - AccProof: accProof, - MinerId: accountKey, - MinerSign: minerSign, - }) + result, err := c.RequestVerifyCommitProof(ctx, verifyCommitAndAccProof) return result, err } diff --git a/core/pois_p2p.go b/core/pois_p2p.go index cf07526..f58d3d6 100644 --- a/core/pois_p2p.go +++ b/core/pois_p2p.go @@ -27,7 +27,11 @@ func (n *Node) PoisGetMinerInitParamP2P(peerid peer.ID, accountKey []byte, timeo return result, err } -func (n *Node) PoisMinerCommitGenChallP2P(peerid peer.ID, accountKey []byte, commit *pb.Commits, timeout time.Duration) (*pb.Challenge, error) { +func (n *Node) PoisMinerCommitGenChallP2P( + peerid peer.ID, + commitGenChall *pb.RequestMinerCommitGenChall, + timeout time.Duration, +) (*pb.Challenge, error) { opts := []grpc.DialOption{grpc.WithBlock(), grpc.WithTransportCredentials(insecure.NewCredentials())} ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() @@ -38,19 +42,13 @@ func (n *Node) PoisMinerCommitGenChallP2P(peerid peer.ID, accountKey []byte, com defer conn.Close() c := pb.NewPoisApiClient(conn) - result, err := c.RequestMinerCommitGenChall(ctx, &pb.RequestMinerCommitGenChall{ - MinerId: accountKey, - Commit: commit, - }) + result, err := c.RequestMinerCommitGenChall(ctx, commitGenChall) return result, err } func (n *Node) PoisVerifyCommitProofP2P( peerid peer.ID, - accountKey []byte, - commitProofGroup *pb.CommitProofGroup, - accProof *pb.AccProof, - minerSign []byte, + verifyCommitAndAccProof *pb.RequestVerifyCommitAndAccProof, timeout time.Duration, ) (*pb.ResponseVerifyCommitOrDeletionProof, error) { opts := []grpc.DialOption{grpc.WithBlock(), grpc.WithTransportCredentials(insecure.NewCredentials())} @@ -63,12 +61,7 @@ func (n *Node) PoisVerifyCommitProofP2P( defer conn.Close() c := pb.NewPoisApiClient(conn) - result, err := c.RequestVerifyCommitProof(ctx, &pb.RequestVerifyCommitAndAccProof{ - CommitProofGroup: commitProofGroup, - AccProof: accProof, - MinerId: accountKey, - MinerSign: minerSign, - }) + result, err := c.RequestVerifyCommitProof(ctx, verifyCommitAndAccProof) return result, err } diff --git a/go.mod b/go.mod index 2e18e9a..41cc8a2 100644 --- a/go.mod +++ b/go.mod @@ -13,8 +13,8 @@ require ( github.com/multiformats/go-multiaddr v0.8.0 github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 github.com/pkg/errors v0.9.1 - golang.org/x/sys v0.7.0 - golang.org/x/time v0.0.0-20191024005414-555d28b269f0 + golang.org/x/sys v0.10.0 + golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba google.golang.org/grpc v1.57.0 google.golang.org/protobuf v1.30.0 ) @@ -31,7 +31,7 @@ require ( github.com/elastic/gosigar v0.14.2 // indirect github.com/flynn/noise v1.0.0 // indirect github.com/francoispqt/gojay v1.2.13 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect @@ -41,7 +41,7 @@ require ( github.com/google/pprof v0.0.0-20221203041831-ce31453925ec // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/golang-lru v0.5.4 // indirect + github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/huin/goupnp v1.0.3 // indirect github.com/ipfs/boxo v0.8.0 // indirect github.com/ipfs/go-cid v0.4.0 // indirect @@ -100,19 +100,20 @@ require ( github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.14.0 // indirect - go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.opentelemetry.io/otel v1.16.0 // indirect + go.opentelemetry.io/otel/metric v1.16.0 // indirect + go.opentelemetry.io/otel/trace v1.16.0 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/dig v1.15.0 // indirect go.uber.org/fx v1.18.2 // indirect go.uber.org/multierr v1.9.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.6.0 // indirect - golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb // indirect + golang.org/x/crypto v0.11.0 // indirect + golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.9.0 // indirect + golang.org/x/net v0.10.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/text v0.11.0 // indirect golang.org/x/tools v0.6.0 // indirect gonum.org/v1/gonum v0.11.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect diff --git a/go.sum b/go.sum index 8554b3e..3565bef 100644 --- a/go.sum +++ b/go.sum @@ -122,8 +122,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -236,8 +236,8 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= 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 v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= @@ -514,7 +514,7 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ 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.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= @@ -541,10 +541,12 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= -go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= -go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= -go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= +go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= +go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= +go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo= +go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= +go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= +go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= @@ -577,8 +579,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U 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-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -589,8 +591,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb h1:PaBZQdo+iSDyHT053FjUCgZQ/9uqVwPOcl7KSWhKn6w= -golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -657,8 +659,8 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -737,8 +739,8 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -748,13 +750,14 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pb/pois-api.pb.go b/pb/pois-api.pb.go index 27c3426..f3187dc 100644 --- a/pb/pois-api.pb.go +++ b/pb/pois-api.pb.go @@ -649,6 +649,7 @@ type CommitProof struct { Node *MhtProof `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` Parents []*MhtProof `protobuf:"bytes,2,rep,name=parents,proto3" json:"parents,omitempty"` + Elders []*MhtProof `protobuf:"bytes,3,rep,name=elders,proto3" json:"elders,omitempty"` } func (x *CommitProof) Reset() { @@ -697,6 +698,13 @@ func (x *CommitProof) GetParents() []*MhtProof { return nil } +func (x *CommitProof) GetElders() []*MhtProof { + if x != nil { + return x.Elders + } + return nil +} + type MhtProof struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1801,192 +1809,195 @@ var file_pois_api_proto_rawDesc = []byte{ 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x22, 0x63, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, - 0x26, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x07, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x60, 0x0a, 0x08, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x61, - 0x74, 0x68, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x09, 0x77, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x61, 0x63, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, - 0x07, 0x61, 0x63, 0x63, 0x50, 0x61, 0x74, 0x68, 0x22, 0x62, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x57, - 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6c, - 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x10, - 0x0a, 0x03, 0x77, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x77, 0x69, 0x74, - 0x12, 0x2a, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, - 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x61, 0x63, 0x63, 0x22, 0x85, 0x01, 0x0a, - 0x23, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x6f, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x69, 0x73, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x6f, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x0a, 0x70, 0x6f, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, - 0x62, 0x6f, 0x76, 0x65, 0x22, 0x48, 0x0a, 0x0a, 0x50, 0x6f, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x03, 0x61, 0x63, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, - 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x65, 0x61, 0x72, 0x22, 0x84, - 0x02, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, - 0x0a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, - 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, - 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x09, 0x70, 0x6f, 0x69, 0x73, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x69, 0x73, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x08, 0x70, 0x6f, 0x69, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x05, - 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, - 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x4b, 0x0a, 0x23, 0x6d, 0x69, 0x6e, 0x65, - 0x72, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x6b, 0x61, 0x64, 0x6f, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1e, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x6b, 0x61, 0x64, - 0x6f, 0x74, 0x53, 0x69, 0x67, 0x22, 0xb6, 0x01, 0x0a, 0x0a, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2f, - 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x22, 0x8f, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, + 0x12, 0x26, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, - 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6f, 0x69, 0x73, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x09, 0x77, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x22, 0x82, - 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6e, 0x64, 0x4c, - 0x65, 0x66, 0x74, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x15, 0x0a, 0x06, - 0x74, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x65, - 0x65, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x0d, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, - 0x22, 0x38, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xcc, 0x01, 0x0a, 0x1c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6d, - 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, - 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x69, - 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x72, 0x6f, - 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x04, 0x72, 0x65, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x63, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x0b, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x59, 0x0a, 0x19, 0x70, 0x72, 0x6f, - 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, - 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, - 0x68, 0x41, 0x6e, 0x64, 0x4c, 0x65, 0x66, 0x74, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x15, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6e, 0x64, 0x4c, 0x65, 0x66, 0x74, 0x52, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x2c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, - 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x72, 0x6f, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x72, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x65, - 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x03, 0x61, 0x63, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x68, - 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x43, 0x68, 0x61, 0x6c, 0x73, 0x22, 0x79, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x22, 0xf4, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, - 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x08, 0x77, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, - 0x61, 0x63, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, - 0x61, 0x63, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x34, 0x0a, 0x09, 0x70, 0x6f, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, - 0x70, 0x6f, 0x69, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x65, - 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x69, - 0x6e, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x32, 0xa1, 0x05, 0x0a, 0x07, 0x50, 0x6f, 0x69, 0x73, - 0x41, 0x70, 0x69, 0x12, 0x60, 0x0a, 0x19, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, - 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6b, 0x65, 0x79, - 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x1a, 0x20, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x1e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x67, 0x65, - 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x1a, 0x13, 0x2e, - 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x1b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x12, 0x28, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x1a, 0x2d, 0x2e, - 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x00, 0x12, 0x72, - 0x0a, 0x27, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, - 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x2e, 0x70, 0x6f, 0x69, 0x73, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x1a, 0x22, 0x2e, 0x70, - 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x12, 0x26, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, + 0x6f, 0x66, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x69, 0x73, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x07, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x65, 0x6c, 0x64, 0x65, 0x72, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x06, 0x65, 0x6c, 0x64, 0x65, + 0x72, 0x73, 0x22, 0x60, 0x0a, 0x08, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x6c, 0x6f, 0x63, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x50, 0x72, 0x6f, 0x6f, + 0x66, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x03, 0x52, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x09, 0x77, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, + 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x63, + 0x63, 0x50, 0x61, 0x74, 0x68, 0x22, 0x62, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, + 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6c, 0x65, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x77, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x77, 0x69, 0x74, 0x12, 0x2a, 0x0a, + 0x03, 0x61, 0x63, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6f, 0x69, + 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x61, 0x63, 0x63, 0x22, 0x85, 0x01, 0x0a, 0x23, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x4f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, + 0x66, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x6f, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x50, 0x6f, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x70, 0x6f, + 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x62, 0x6f, 0x76, + 0x65, 0x22, 0x48, 0x0a, 0x0a, 0x50, 0x6f, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x63, + 0x63, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x65, 0x61, 0x72, 0x22, 0x84, 0x02, 0x0a, 0x17, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, + 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x09, 0x70, 0x6f, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x70, 0x6f, 0x69, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x4b, 0x0a, 0x23, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, + 0x70, 0x6f, 0x6c, 0x6b, 0x61, 0x64, 0x6f, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x1e, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x6b, 0x61, 0x64, 0x6f, 0x74, 0x53, + 0x69, 0x67, 0x22, 0xb6, 0x01, 0x0a, 0x0a, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, + 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6f, + 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x6f, 0x6f, + 0x74, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x09, 0x77, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x15, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6e, 0x64, 0x4c, 0x65, 0x66, 0x74, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, + 0x65, 0x66, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x65, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x65, 0x65, 0x49, 0x64, + 0x22, 0x3b, 0x0a, 0x0d, 0x4d, 0x68, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x68, 0x74, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x22, 0x38, 0x0a, + 0x18, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xcc, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x1a, 0x27, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x70, 0x61, 0x63, + 0x69, 0x66, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x72, 0x6f, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, + 0x65, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x03, 0x61, 0x63, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x63, + 0x68, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x43, 0x68, 0x61, 0x6c, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x59, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6f, 0x69, 0x73, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6e, + 0x64, 0x4c, 0x65, 0x66, 0x74, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6e, 0x64, 0x4c, 0x65, 0x66, 0x74, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, + 0xd0, 0x01, 0x0a, 0x2c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x1d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x76, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x1a, 0x2d, 0x2e, 0x70, 0x6f, 0x69, + 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, + 0x66, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, + 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x65, 0x61, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x63, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x63, + 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x68, 0x61, + 0x6c, 0x73, 0x22, 0x79, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf4, 0x01, + 0x0a, 0x1a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x6f, 0x6f, + 0x74, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x41, 0x63, 0x63, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x08, 0x77, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x63, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x63, 0x63, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x34, 0x0a, 0x09, 0x70, 0x6f, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x69, + 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x70, 0x6f, 0x69, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x65, 0x72, + 0x53, 0x69, 0x67, 0x6e, 0x32, 0xa1, 0x05, 0x0a, 0x07, 0x50, 0x6f, 0x69, 0x73, 0x41, 0x70, 0x69, + 0x12, 0x60, 0x0a, 0x19, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x65, + 0x72, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x2e, + 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x20, + 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x1e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x69, + 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x63, + 0x68, 0x61, 0x6c, 0x6c, 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x47, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x1a, 0x13, 0x2e, 0x70, 0x6f, 0x69, + 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, + 0x00, 0x12, 0x78, 0x0a, 0x1b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x12, 0x28, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x41, + 0x6e, 0x64, 0x41, 0x63, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x1a, 0x2d, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x00, 0x42, 0x07, 0x5a, 0x05, 0x2e, - 0x2f, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x27, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x1a, 0x22, 0x2e, 0x70, 0x6f, 0x69, 0x73, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x22, 0x00, 0x12, + 0x6f, 0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x26, 0x2e, + 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x1a, 0x27, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x00, + 0x12, 0x76, 0x0a, 0x1d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x1a, 0x2d, 0x2e, 0x70, 0x6f, 0x69, 0x73, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x00, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2040,35 +2051,36 @@ var file_pois_api_proto_depIdxs = []int32{ 10, // 6: pois.api.CommitProofGroupInner.commit_proof:type_name -> pois.api.CommitProof 11, // 7: pois.api.CommitProof.node:type_name -> pois.api.MhtProof 11, // 8: pois.api.CommitProof.parents:type_name -> pois.api.MhtProof - 13, // 9: pois.api.AccProof.wit_chains:type_name -> pois.api.AccWitnessNode - 13, // 10: pois.api.AccWitnessNode.acc:type_name -> pois.api.AccWitnessNode - 15, // 11: pois.api.ResponseVerifyCommitOrDeletionProof.pois_status:type_name -> pois.api.PoisStatus - 4, // 12: pois.api.RequestSpaceProofVerify.pois_info:type_name -> pois.api.MinerPoisInfo - 17, // 13: pois.api.RequestSpaceProofVerify.proof:type_name -> pois.api.SpaceProof - 19, // 14: pois.api.SpaceProof.proofs:type_name -> pois.api.MhtProofGroup - 13, // 15: pois.api.SpaceProof.wit_chains:type_name -> pois.api.AccWitnessNode - 11, // 16: pois.api.MhtProofGroup.proofs:type_name -> pois.api.MhtProof - 22, // 17: pois.api.RequestSpaceProofVerifyTotal.proof_list:type_name -> pois.api.BlocksProof - 18, // 18: pois.api.BlocksProof.proof_hash_and_left_right:type_name -> pois.api.ProofHashAndLeftRight - 13, // 19: pois.api.RequestVerifyDeletionProof.wit_chain:type_name -> pois.api.AccWitnessNode - 4, // 20: pois.api.RequestVerifyDeletionProof.pois_info:type_name -> pois.api.MinerPoisInfo - 0, // 21: pois.api.PoisApi.request_miner_get_new_key:input_type -> pois.api.RequestMinerInitParam - 2, // 22: pois.api.PoisApi.request_miner_commit_gen_chall:input_type -> pois.api.RequestMinerCommitGenChall - 7, // 23: pois.api.PoisApi.request_verify_commit_proof:input_type -> pois.api.RequestVerifyCommitAndAccProof - 16, // 24: pois.api.PoisApi.request_space_proof_verify_single_block:input_type -> pois.api.RequestSpaceProofVerify - 21, // 25: pois.api.PoisApi.request_verify_space_total:input_type -> pois.api.RequestSpaceProofVerifyTotal - 25, // 26: pois.api.PoisApi.request_verify_deletion_proof:input_type -> pois.api.RequestVerifyDeletionProof - 1, // 27: pois.api.PoisApi.request_miner_get_new_key:output_type -> pois.api.ResponseMinerInitParam - 5, // 28: pois.api.PoisApi.request_miner_commit_gen_chall:output_type -> pois.api.Challenge - 14, // 29: pois.api.PoisApi.request_verify_commit_proof:output_type -> pois.api.ResponseVerifyCommitOrDeletionProof - 20, // 30: pois.api.PoisApi.request_space_proof_verify_single_block:output_type -> pois.api.ResponseSpaceProofVerify - 24, // 31: pois.api.PoisApi.request_verify_space_total:output_type -> pois.api.ResponseSpaceProofVerifyTotal - 14, // 32: pois.api.PoisApi.request_verify_deletion_proof:output_type -> pois.api.ResponseVerifyCommitOrDeletionProof - 27, // [27:33] is the sub-list for method output_type - 21, // [21:27] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 11, // 9: pois.api.CommitProof.elders:type_name -> pois.api.MhtProof + 13, // 10: pois.api.AccProof.wit_chains:type_name -> pois.api.AccWitnessNode + 13, // 11: pois.api.AccWitnessNode.acc:type_name -> pois.api.AccWitnessNode + 15, // 12: pois.api.ResponseVerifyCommitOrDeletionProof.pois_status:type_name -> pois.api.PoisStatus + 4, // 13: pois.api.RequestSpaceProofVerify.pois_info:type_name -> pois.api.MinerPoisInfo + 17, // 14: pois.api.RequestSpaceProofVerify.proof:type_name -> pois.api.SpaceProof + 19, // 15: pois.api.SpaceProof.proofs:type_name -> pois.api.MhtProofGroup + 13, // 16: pois.api.SpaceProof.wit_chains:type_name -> pois.api.AccWitnessNode + 11, // 17: pois.api.MhtProofGroup.proofs:type_name -> pois.api.MhtProof + 22, // 18: pois.api.RequestSpaceProofVerifyTotal.proof_list:type_name -> pois.api.BlocksProof + 18, // 19: pois.api.BlocksProof.proof_hash_and_left_right:type_name -> pois.api.ProofHashAndLeftRight + 13, // 20: pois.api.RequestVerifyDeletionProof.wit_chain:type_name -> pois.api.AccWitnessNode + 4, // 21: pois.api.RequestVerifyDeletionProof.pois_info:type_name -> pois.api.MinerPoisInfo + 0, // 22: pois.api.PoisApi.request_miner_get_new_key:input_type -> pois.api.RequestMinerInitParam + 2, // 23: pois.api.PoisApi.request_miner_commit_gen_chall:input_type -> pois.api.RequestMinerCommitGenChall + 7, // 24: pois.api.PoisApi.request_verify_commit_proof:input_type -> pois.api.RequestVerifyCommitAndAccProof + 16, // 25: pois.api.PoisApi.request_space_proof_verify_single_block:input_type -> pois.api.RequestSpaceProofVerify + 21, // 26: pois.api.PoisApi.request_verify_space_total:input_type -> pois.api.RequestSpaceProofVerifyTotal + 25, // 27: pois.api.PoisApi.request_verify_deletion_proof:input_type -> pois.api.RequestVerifyDeletionProof + 1, // 28: pois.api.PoisApi.request_miner_get_new_key:output_type -> pois.api.ResponseMinerInitParam + 5, // 29: pois.api.PoisApi.request_miner_commit_gen_chall:output_type -> pois.api.Challenge + 14, // 30: pois.api.PoisApi.request_verify_commit_proof:output_type -> pois.api.ResponseVerifyCommitOrDeletionProof + 20, // 31: pois.api.PoisApi.request_space_proof_verify_single_block:output_type -> pois.api.ResponseSpaceProofVerify + 24, // 32: pois.api.PoisApi.request_verify_space_total:output_type -> pois.api.ResponseSpaceProofVerifyTotal + 14, // 33: pois.api.PoisApi.request_verify_deletion_proof:output_type -> pois.api.ResponseVerifyCommitOrDeletionProof + 28, // [28:34] is the sub-list for method output_type + 22, // [22:28] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_pois_api_proto_init() } diff --git a/pb/pois-api.proto b/pb/pois-api.proto index 8671470..55ef307 100644 --- a/pb/pois-api.proto +++ b/pb/pois-api.proto @@ -76,6 +76,7 @@ message CommitProofGroupInner { message CommitProof { MhtProof node = 1; repeated MhtProof parents = 2; + repeated MhtProof elders = 3; } message MhtProof { int32 index = 1; diff --git a/pb/pois-service-api.proto b/pb/pois-service-api.proto index c45be63..bfd4fd4 100644 --- a/pb/pois-service-api.proto +++ b/pb/pois-service-api.proto @@ -4,10 +4,7 @@ package podr2.api; option go_package = "./;pb"; service Podr2Api { - - rpc request_gen_tag(RequestGenTag) - returns (ResponseGenTag) {} - + rpc request_gen_tag(RequestGenTag) returns (ResponseGenTag) {} rpc request_batch_verify(RequestBatchVerify) returns (ResponseBatchVerify) {} } From 96e7e4d3219e7b2bce5ba91cfd29e7264fba9b09 Mon Sep 17 00:00:00 2001 From: AstaFrode Date: Fri, 15 Sep 2023 11:52:50 +0800 Subject: [PATCH 2/2] add bitswap --- core/node.go | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++- go.mod | 17 ++++++++-- go.sum | 41 +++++++++++++++++++++++++ 3 files changed, 141 insertions(+), 4 deletions(-) diff --git a/core/node.go b/core/node.go index 6497e42..2a14d0c 100644 --- a/core/node.go +++ b/core/node.go @@ -21,6 +21,13 @@ import ( libp2pgrpc "github.com/drgomesp/go-libp2p-grpc" ggio "github.com/gogo/protobuf/io" "github.com/gogo/protobuf/proto" + bitswap "github.com/ipfs/boxo/bitswap" + bsnet "github.com/ipfs/boxo/bitswap/network" + "github.com/ipfs/go-cid" + ds "github.com/ipfs/go-datastore" + ds_sync "github.com/ipfs/go-datastore/sync" + blockstore "github.com/ipfs/go-ipfs-blockstore" + "github.com/ipfs/go-libipfs/blocks" "github.com/libp2p/go-libp2p" dht "github.com/libp2p/go-libp2p-kad-dht" "github.com/libp2p/go-libp2p/core/connmgr" @@ -117,6 +124,21 @@ type P2P interface { // Close p2p Close() error + // NewBitSwapBlock creates block data of data + NewBitSwapBlock(data []byte) (cid.Cid, error) + + // SaveDataToBlock saves data to block data + SaveDataToBlock(data []byte) (cid.Cid, error) + + // GetDataFromBlock get data from block + GetDataFromBlock(wantCid string) ([]byte, error) + + // NewBitSwapBlockWithCid creates block data of data and cidstr + NewBitSwapBlockWithCid(data []byte, cidstr cid.Cid) (*blocks.BasicBlock, error) + + // SaveAndNotifyBlock save and notify block + SaveAndNotifyBlock(block *blocks.BasicBlock) error + // GetDiscoveredPeers() <-chan *routing.QueryEvent @@ -287,6 +309,8 @@ type Node struct { discoveredPeerCh <-chan *routing.QueryEvent host host.Host libp2pgrpcCli *libp2pgrpc.Client + bstore blockstore.Blockstore + bswap *bitswap.Bitswap dir DataDirs peerPublickey []byte workspace string @@ -380,13 +404,17 @@ func NewBasicNode( libp2p.ConnectionManager(cmgr), libp2p.DefaultTransports, libp2p.DefaultSecurity, - libp2p.NATPortMap(), libp2p.ProtocolVersion(protocolPrefix+p2pProtocolVer), libp2p.DefaultMuxers, libp2p.AddrsFactory(addressFactory), libp2p.DefaultEnableRelay, libp2p.DisableMetrics(), libp2p.ResourceManager(rm), + libp2p.NATPortMap(), + libp2p.EnableNATService(), + libp2p.EnableRelay(), + libp2p.EnableRelayService(), + libp2p.EnableHolePunching(), ) bhost, err := libp2p.New(opts...) @@ -439,11 +467,68 @@ func NewBasicNode( return nil, err } + network := bsnet.NewFromIpfsHost(n.host, n.RoutingDiscovery) + // blockData := blocks.NewBlock([]byte("123456")) + // fmt.Println("Generate a cid: ", blockData.Cid().String()) + n.bstore = blockstore.NewBlockstore(ds_sync.MutexWrap(ds.NewMapDatastore())) + n.bswap = bitswap.New(n.ctxQueryFromCtxCancel, network, n.bstore) + n.initProtocol(protocolPrefix) return n, nil } +// NewBitSwapBlock creates block data of data +func (n *Node) NewBitSwapBlock(data []byte) (cid.Cid, error) { + if len(data) <= 0 { + return cid.Cid{}, errors.New("[NewBitSwapBlock] empty data") + } + blockData := blocks.NewBlock(data) + return blockData.Cid(), nil +} + +// NewBitSwapBlockWithCid creates block data of data and cidstr +func (n *Node) NewBitSwapBlockWithCid(data []byte, cidstr cid.Cid) (*blocks.BasicBlock, error) { + if len(data) <= 0 { + return nil, errors.New("[NewBitSwapBlockWithCid] empty data") + } + return blocks.NewBlockWithCid(data, cidstr) +} + +// SaveAndNotifyBlock save and notify block +func (n *Node) SaveAndNotifyBlock(block *blocks.BasicBlock) error { + err := n.bstore.Put(n.ctxQueryFromCtxCancel, block) + if err != nil { + return err + } + err = n.bswap.NotifyNewBlocks(n.ctxQueryFromCtxCancel, block) + n.bswap.GetWantHaves() + return err +} + +// SaveDataToBlock saves data to block data +func (n *Node) SaveDataToBlock(data []byte) (cid.Cid, error) { + if len(data) <= 0 { + return cid.Cid{}, errors.New("[SaveDataToBlock] empty data") + } + blockData := blocks.NewBlock(data) + err := n.bstore.Put(n.ctxQueryFromCtxCancel, blockData) + return blockData.Cid(), err +} + +// GetDataFromBlock get data from block +func (n *Node) GetDataFromBlock(wantCid string) ([]byte, error) { + wantcid, err := cid.Decode(wantCid) + if err != nil { + return nil, err + } + block, err := n.bswap.GetBlock(n.ctxQueryFromCtxCancel, wantcid) + if err != nil { + return nil, err + } + return block.RawData(), err +} + // DHTFindPeer searches for a peer with given ID. func (n *Node) DHTFindPeer(peerid string) (peer.AddrInfo, error) { id, err := peer.Decode(peerid) diff --git a/go.mod b/go.mod index 41cc8a2..f805063 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,11 @@ require ( github.com/drgomesp/go-libp2p-grpc v0.1.0 github.com/gogo/protobuf v1.3.2 github.com/google/uuid v1.3.0 + github.com/ipfs/boxo v0.8.0 + github.com/ipfs/go-cid v0.4.0 + github.com/ipfs/go-datastore v0.6.0 + github.com/ipfs/go-ipfs-blockstore v1.3.0 + github.com/ipfs/go-libipfs v0.4.0 github.com/libp2p/go-libp2p v0.26.3 github.com/libp2p/go-libp2p-kad-dht v0.23.0 github.com/libp2p/go-msgio v0.3.0 @@ -25,6 +30,7 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/containerd/cgroups v1.0.4 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/cskr/pubsub v1.0.2 // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect github.com/docker/go-units v0.5.0 // indirect @@ -43,12 +49,17 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/huin/goupnp v1.0.3 // indirect - github.com/ipfs/boxo v0.8.0 // indirect - github.com/ipfs/go-cid v0.4.0 // indirect - github.com/ipfs/go-datastore v0.6.0 // indirect + github.com/ipfs/bbloom v0.0.4 // indirect + github.com/ipfs/go-block-format v0.1.2 // indirect + github.com/ipfs/go-ipfs-delay v0.0.1 // indirect + github.com/ipfs/go-ipfs-ds-help v1.1.0 // indirect + github.com/ipfs/go-ipfs-pq v0.0.3 // indirect github.com/ipfs/go-ipfs-util v0.0.2 // indirect + github.com/ipfs/go-ipld-format v0.4.0 // indirect github.com/ipfs/go-log v1.0.5 // indirect github.com/ipfs/go-log/v2 v2.5.1 // indirect + github.com/ipfs/go-metrics-interface v0.0.1 // indirect + github.com/ipfs/go-peertaskqueue v0.8.1 // indirect github.com/ipld/go-ipld-prime v0.20.0 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect diff --git a/go.sum b/go.sum index 3565bef..939f5b7 100644 --- a/go.sum +++ b/go.sum @@ -75,6 +75,8 @@ github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= +github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= 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= @@ -216,6 +218,7 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20221203041831-ce31453925ec h1:fR20TYVVwhK4O7r7y+McjRYyaTH6/vjwJOajE+XhlzM= github.com/google/pprof v0.0.0-20221203041831-ce31453925ec/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -229,6 +232,8 @@ github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= 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= @@ -243,21 +248,49 @@ github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs= +github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0= github.com/ipfs/boxo v0.8.0 h1:UdjAJmHzQHo/j3g3b1bAcAXCj/GM6iTwvSlBDvPBNBs= github.com/ipfs/boxo v0.8.0/go.mod h1:RIsi4CnTyQ7AUsNn5gXljJYZlQrHBMnJp94p73liFiA= +github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= +github.com/ipfs/go-block-format v0.1.2 h1:GAjkfhVx1f4YTODS6Esrj1wt2HhrtwTnhEr+DyPUaJo= +github.com/ipfs/go-block-format v0.1.2/go.mod h1:mACVcrxarQKstUU3Yf/RdwbC4DzPV6++rO2a3d+a/KE= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog= github.com/ipfs/go-cid v0.4.0 h1:a4pdZq0sx6ZSxbCizebnKiMCx/xI/aBBFlB73IgH4rA= github.com/ipfs/go-cid v0.4.0/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= +github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8= github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ipfs-blockstore v1.3.0 h1:m2EXaWgwTzAfsmt5UdJ7Is6l4gJcaM/A12XwJyvYvMM= +github.com/ipfs/go-ipfs-blockstore v1.3.0/go.mod h1:KgtZyc9fq+P2xJUiCAzbRdhhqJHvsw8u2Dlqy2MyRTE= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= +github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v1.1.0 h1:yLE2w9RAsl31LtfMt91tRZcrx+e61O5mDxFRR994w4Q= +github.com/ipfs/go-ipfs-ds-help v1.1.0/go.mod h1:YR5+6EaebOhfcqVCyqemItCLthrpVNot+rsOU/5IatU= +github.com/ipfs/go-ipfs-pq v0.0.3 h1:YpoHVJB+jzK15mr/xsWC574tyDLkezVrDNeaalQBsTE= +github.com/ipfs/go-ipfs-pq v0.0.3/go.mod h1:btNw5hsHBpRcSSgZtiNm/SLj5gYIZ18AKtv3kERkRb4= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= github.com/ipfs/go-ipfs-util v0.0.2 h1:59Sswnk1MFaiq+VcaknX7aYEyGyGDAA73ilhEK2POp8= github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ= +github.com/ipfs/go-ipld-format v0.4.0 h1:yqJSaJftjmjc9jEOFYlpkwOLVKv68OD27jFLlSghBlQ= +github.com/ipfs/go-ipld-format v0.4.0/go.mod h1:co/SdBE8h99968X0hViiw1MNlh6fvxxnHpvVLnH7jSM= +github.com/ipfs/go-libipfs v0.4.0 h1:TkUxJGjtPnSzAgkw7VjS0/DBay3MPjmTBa4dGdUQCDE= +github.com/ipfs/go-libipfs v0.4.0/go.mod h1:XsU2cP9jBhDrXoJDe0WxikB8XcVmD3k2MEZvB3dbYu8= github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-peertaskqueue v0.8.1 h1:YhxAs1+wxb5jk7RvS0LHdyiILpNmRIRnZVztekOF0pg= +github.com/ipfs/go-peertaskqueue v0.8.1/go.mod h1:Oxxd3eaK279FxeydSPPVGHzbwVeHjatZ2GA8XD+KbPU= github.com/ipld/go-ipld-prime v0.20.0 h1:Ud3VwE9ClxpO2LkCYP7vWPc0Fo+dYdYzgxUJZ3uRG4g= github.com/ipld/go-ipld-prime v0.20.0/go.mod h1:PzqZ/ZR981eKbgdr3y2DJYeD/8bgMawdGVlJDE8kK+M= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= @@ -298,6 +331,7 @@ github.com/koron/go-ssdp v0.0.3 h1:JivLMY45N76b4p/vsWGOKewBQu6uf39y8l+AQ7sDKx8= github.com/koron/go-ssdp v0.0.3/go.mod h1:b2MxI6yh02pKrsyNoQUsk4+YNikaGhe4894J+Q5lDvA= 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.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -359,6 +393,7 @@ github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b/go.mod h1:lxPUiZwKo github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc/go.mod h1:cGKTAVKx4SxOuR/czcZ/E2RSJ3sfHs8FpHhQ5CWMf9s= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= @@ -369,10 +404,12 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN 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= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.1.3/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/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= 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= @@ -385,10 +422,12 @@ github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2 github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= github.com/multiformats/go-multibase v0.1.1 h1:3ASCDsuLX8+j4kx58qnJ4YFq/JWTJpCyDW27ztsVTOI= github.com/multiformats/go-multibase v0.1.1/go.mod h1:ZEjHE+IsUrgp5mhlEAYjMtZwK1k4haNkcaPg9aoe1a8= github.com/multiformats/go-multicodec v0.8.1 h1:ycepHwavHafh3grIbR1jIXnKCsFm0fqsfEOsJ8NtKE8= github.com/multiformats/go-multicodec v0.8.1/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108= @@ -570,6 +609,7 @@ go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1 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-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/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-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -691,6 +731,7 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=