diff --git a/Cargo.lock b/Cargo.lock index 7c1f82c8..b9958523 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1249,11 +1249,11 @@ dependencies = [ [[package]] name = "borsh" -version = "1.3.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" +checksum = "dbe5b10e214954177fb1dc9fbd20a1a2608fe99e6c832033bdc7cea287a20d77" dependencies = [ - "borsh-derive 1.3.0", + "borsh-derive 1.5.0", "cfg_aliases", ] @@ -1285,12 +1285,12 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.3.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" +checksum = "d7a8646f94ab393e43e8b35a2558b1624bed28b97ee09c5d15456e3c9463f46d" dependencies = [ "once_cell", - "proc-macro-crate 2.0.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.47", @@ -3474,7 +3474,7 @@ dependencies = [ "actix", "actix-web", "anyhow", - "borsh 1.3.0", + "borsh 1.5.0", "clap 4.4.11", "deadpool", "deadpool-lapin", @@ -3483,8 +3483,10 @@ dependencies = [ "near-client", "near-client-primitives", "near-crypto 1.39.0", + "near-da-primitives", "near-indexer", "near-o11y 1.39.0", + "near-primitives 1.39.0", "openssl-probe", "prometheus", "serde", @@ -4142,7 +4144,7 @@ version = "1.0.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d10d45a9c49c3e975c362cf4d1dc1d7b72a716b30394bea56ee2a8fb225f50b7" dependencies = [ - "borsh 1.3.0", + "borsh 1.5.0", "serde", ] @@ -4180,7 +4182,7 @@ source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a70832 dependencies = [ "actix", "assert_matches", - "borsh 1.3.0", + "borsh 1.5.0", "bytesize", "chrono", "crossbeam-channel", @@ -4276,7 +4278,7 @@ version = "1.39.0" source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a7083250266bff780#2b2c06edb90400fb934ae08a7083250266bff780" dependencies = [ "actix", - "borsh 1.3.0", + "borsh 1.5.0", "chrono", "derive-enum-from-into", "derive_more", @@ -4322,7 +4324,7 @@ dependencies = [ "actix-rt", "anyhow", "async-trait", - "borsh 1.3.0", + "borsh 1.5.0", "chrono", "cloud-storage", "derive_more", @@ -4470,7 +4472,7 @@ version = "1.39.0" source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a7083250266bff780#2b2c06edb90400fb934ae08a7083250266bff780" dependencies = [ "blake2", - "borsh 1.3.0", + "borsh 1.5.0", "bs58 0.4.0", "c2-chacha", "curve25519-dalek 4.1.1", @@ -4490,6 +4492,16 @@ dependencies = [ "thiserror", ] +[[package]] +name = "near-da-primitives" +version = "0.4.0" +source = "git+https://github.com/near/rollup-data-availability?rev=0c54b4fc2acce11f96f4f48545e24f95f8715c85#0c54b4fc2acce11f96f4f48545e24f95f8715c85" +dependencies = [ + "borsh 1.5.0", + "serde", + "serde_with", +] + [[package]] name = "near-dyn-configs" version = "1.39.0" @@ -4513,7 +4525,7 @@ name = "near-epoch-manager" version = "1.39.0" source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a7083250266bff780#2b2c06edb90400fb934ae08a7083250266bff780" dependencies = [ - "borsh 1.3.0", + "borsh 1.5.0", "itertools", "near-cache", "near-chain-configs 1.39.0", @@ -4553,7 +4565,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" dependencies = [ - "borsh 1.3.0", + "borsh 1.5.0", "schemars", "serde", ] @@ -4712,7 +4724,7 @@ dependencies = [ "arc-swap", "assert_matches", "async-trait", - "borsh 1.3.0", + "borsh 1.5.0", "bytes", "bytesize", "chrono", @@ -4812,7 +4824,7 @@ version = "1.39.0" source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a7083250266bff780#2b2c06edb90400fb934ae08a7083250266bff780" dependencies = [ "assert_matches", - "borsh 1.3.0", + "borsh 1.5.0", "enum-map", "near-account-id 1.0.0-alpha.4", "near-primitives-core 1.39.0", @@ -4855,7 +4867,7 @@ name = "near-pool" version = "1.39.0" source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a7083250266bff780#2b2c06edb90400fb934ae08a7083250266bff780" dependencies = [ - "borsh 1.3.0", + "borsh 1.5.0", "near-crypto 1.39.0", "near-o11y 1.39.0", "near-primitives 1.39.0", @@ -4936,7 +4948,7 @@ source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a70832 dependencies = [ "arbitrary", "base64 0.21.5", - "borsh 1.3.0", + "borsh 1.5.0", "bytesize", "cfg-if 1.0.0", "chrono", @@ -5016,7 +5028,7 @@ source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a70832 dependencies = [ "arbitrary", "base64 0.21.5", - "borsh 1.3.0", + "borsh 1.5.0", "bs58 0.4.0", "derive_more", "enum-map", @@ -5227,7 +5239,7 @@ dependencies = [ "actix", "actix-rt", "anyhow", - "borsh 1.3.0", + "borsh 1.5.0", "bytesize", "crossbeam", "derive_more", @@ -5412,7 +5424,7 @@ source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a70832 dependencies = [ "anyhow", "base64 0.21.5", - "borsh 1.3.0", + "borsh 1.5.0", "ed25519-dalek 2.1.0", "enum-map", "finite-wasm", @@ -5548,7 +5560,7 @@ dependencies = [ "actix-web", "anyhow", "awc", - "borsh 1.3.0", + "borsh 1.5.0", "chrono", "cloud-storage", "dirs", @@ -5638,7 +5650,7 @@ name = "node-runtime" version = "1.39.0" source = "git+https://github.com/near/nearcore?rev=2b2c06edb90400fb934ae08a7083250266bff780#2b2c06edb90400fb934ae08a7083250266bff780" dependencies = [ - "borsh 1.3.0", + "borsh 1.5.0", "hex", "near-chain-configs 1.39.0", "near-crypto 1.39.0", @@ -6080,7 +6092,7 @@ version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" dependencies = [ - "proc-macro-crate 2.0.1", + "proc-macro-crate 2.0.0", "proc-macro2", "quote", "syn 1.0.109", @@ -6445,14 +6457,22 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "toml_datetime", "toml_edit 0.20.2", ] +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -8443,9 +8463,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" [[package]] name = "toml_edit" @@ -8469,6 +8489,17 @@ dependencies = [ "winnow", ] +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" diff --git a/go.mod b/go.mod index 05ab9fc9..3bfd7a73 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/ethereum/go-ethereum v1.13.14 github.com/gorilla/mux v1.8.1 github.com/near/borsh-go v0.3.1 - github.com/near/rollup-data-availability v0.2.4-0.20240327150603-b004cd803551 + github.com/near/rollup-data-availability v0.4.0 github.com/pokt-network/smt v0.9.2 github.com/prometheus/client_golang v1.19.0 github.com/stretchr/testify v1.9.0 @@ -109,5 +109,3 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect rsc.io/tmplfunc v0.0.3 // indirect ) - -replace github.com/near/rollup-data-availability v0.2.4-0.20240327150603-b004cd803551 => github.com/taco-paco/rollup-data-availability v0.0.0-20240409111524-c9ec12924b27 diff --git a/go.sum b/go.sum index dec6fb6a..40896a34 100644 --- a/go.sum +++ b/go.sum @@ -77,13 +77,6 @@ github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.13.14 h1:EwiY3FZP94derMCIam1iW4HFVrSgIcpsu0HwTQtm6CQ= @@ -114,33 +107,11 @@ github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keL github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= -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= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -149,7 +120,6 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -220,6 +190,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/near/borsh-go v0.3.1 h1:ukNbhJlPKxfua0/nIuMZhggSU8zvtRP/VyC25LLqPUA= github.com/near/borsh-go v0.3.1/go.mod h1:NeMochZp7jN/pYFuxLkrZtmLqbADmnp/y1+/dL+AsyQ= +github.com/near/rollup-data-availability v0.4.0 h1:z23j/mUnBg0Efm5i1HMqxl4OZF2YdVNtm6OXgkqta3g= +github.com/near/rollup-data-availability v0.4.0/go.mod h1:ARH0kwzYys0K+8hHpj5+FPC0VwswxvA6rB2r70pXrWE= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -270,8 +242,6 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/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.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= 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= @@ -279,8 +249,6 @@ github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbe github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/taco-paco/rollup-data-availability v0.0.0-20240409111524-c9ec12924b27 h1:FhztHW0tqkO1CHKOgyp90jabPJJ2e2/IBMmvuoH76Qs= -github.com/taco-paco/rollup-data-availability v0.0.0-20240409111524-c9ec12924b27/go.mod h1:kzQi3/MdPKkid8rxflyA9oEBlaLAewXJMqCBXStBxQo= github.com/testcontainers/testcontainers-go v0.29.1 h1:z8kxdFlovA2y97RWx98v/TQ+tR+SXZm6p35M+xB92zk= github.com/testcontainers/testcontainers-go v0.29.1/go.mod h1:SnKnKQav8UcgtKqjp/AD8bE1MqZm+3TDb/B8crE3XnI= github.com/testcontainers/testcontainers-go/modules/rabbitmq v0.26.0 h1:fRSWNIeEJxTRO7HEyJ96EU7MgrpkUWmPYgfM5/KA4DU= @@ -303,7 +271,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= @@ -344,7 +311,6 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -381,35 +347,11 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= -google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/indexer/Cargo.toml b/indexer/Cargo.toml index b0a4d722..0ca25f35 100644 --- a/indexer/Cargo.toml +++ b/indexer/Cargo.toml @@ -30,7 +30,10 @@ near-indexer = { git = "https://github.com/near/nearcore", rev = "2b2c06edb90400 near-client = { git = "https://github.com/near/nearcore", rev = "2b2c06edb90400fb934ae08a7083250266bff780" } near-o11y = { git = "https://github.com/near/nearcore", rev = "2b2c06edb90400fb934ae08a7083250266bff780" } near-client-primitives = { git = "https://github.com/near/nearcore", rev = "2b2c06edb90400fb934ae08a7083250266bff780" } -borsh = { version = "1.0.0", features = ["derive", "rc"] } +near-primitives = { git = "https://github.com/near/nearcore", rev = "2b2c06edb90400fb934ae08a7083250266bff780" } +near-da-primitives = { git = "https://github.com/near/rollup-data-availability", rev = "0c54b4fc2acce11f96f4f48545e24f95f8715c85"} + +borsh = { version = "1.5.0", features = ["derive", "rc"] } serde_yaml = "0.9.34" [dev-dependencies] diff --git a/indexer/src/block_listener.rs b/indexer/src/block_listener.rs index a9a6c643..a884ac90 100644 --- a/indexer/src/block_listener.rs +++ b/indexer/src/block_listener.rs @@ -18,7 +18,7 @@ use crate::{ errors::Result, metrics::{make_block_listener_metrics, BlockEventListener, Metricable}, types, - types::CandidateData, + types::{CandidateData, try_transform_payload}, INDEXER, }; @@ -61,7 +61,18 @@ impl BlockListener { fn transaction_filter_map(transaction: TransactionWithRollupId) -> Option { let actions = &transaction.transaction.transaction.actions; - let payloads: Vec> = actions.clone().into_iter().filter_map(Self::extract_args).collect(); + let payloads: Vec> = actions + .clone() + .into_iter() + .filter_map(Self::extract_args) + .filter_map(|payload| match try_transform_payload(&payload) { + Ok(v) => Some(v), + Err(err) => { + info!(target: INDEXER, "DA data of incorrect format: {}", err); + None + } + }) + .collect(); if payloads.is_empty() { return None; @@ -85,7 +96,7 @@ impl BlockListener { mut done: oneshot::Receiver<()>, queue_protected: types::ProtectedQueue, candidates_sender: mpsc::Sender, - listener: Option + listener: Option, ) { #[cfg(not(test))] const FLUSH_INTERVAL: Duration = Duration::from_secs(1); @@ -135,7 +146,10 @@ impl BlockListener { true } - fn extract_candidates(addresses_to_rollup_ids: &HashMap, streamer_message: StreamerMessage) -> Vec { + fn extract_candidates( + addresses_to_rollup_ids: &HashMap, + streamer_message: StreamerMessage, + ) -> Vec { streamer_message .shards .into_iter() @@ -188,7 +202,9 @@ impl BlockListener { { let mut queue = queue_protected.lock().await; let flushed = Self::flush(&mut queue, &candidates_sender); - listener.as_ref().map(|l| l.current_queued_candidates.set(queue.len() as f64)); + listener + .as_ref() + .map(|l| l.current_queued_candidates.set(queue.len() as f64)); if !flushed { info!(target: INDEXER, "Not flushed, so enqueuing candidate data"); @@ -224,7 +240,9 @@ impl BlockListener { inner: candidate, }); queue.extend(iter.map(|el| ExpirableCandidateData { timestamp, inner: el })); - listener.as_ref().map(|l| l.current_queued_candidates.set(queue.len() as f64)); + listener + .as_ref() + .map(|l| l.current_queued_candidates.set(queue.len() as f64)); break; } diff --git a/indexer/src/metrics.rs b/indexer/src/metrics.rs index 398e6b3a..d2420807 100644 --- a/indexer/src/metrics.rs +++ b/indexer/src/metrics.rs @@ -1,5 +1,8 @@ -use prometheus::{core::{AtomicF64, GenericCounter}, Counter, Gauge, Histogram, HistogramOpts, Opts, Registry}; use prometheus::core::GenericGauge; +use prometheus::{ + core::{AtomicF64, GenericCounter}, + Counter, Gauge, Histogram, HistogramOpts, Opts, Registry, +}; use crate::errors::Result; @@ -17,7 +20,7 @@ pub struct CandidatesListener { #[derive(Clone)] pub struct BlockEventListener { pub num_candidates: GenericCounter, - pub current_queued_candidates: GenericGauge + pub current_queued_candidates: GenericGauge, } #[derive(Clone)] @@ -65,7 +68,10 @@ pub(crate) fn make_block_listener_metrics(registry: Registry) -> Result Result { diff --git a/indexer/src/types.rs b/indexer/src/types.rs index 7552b95e..c65b08f6 100644 --- a/indexer/src/types.rs +++ b/indexer/src/types.rs @@ -1,8 +1,12 @@ -use std::collections::VecDeque; -use std::fmt::Formatter; -use std::{fmt, sync}; +use near_da_primitives::{Blob, SubmitRequest}; +use std::{ + collections::VecDeque, + {fmt::{self, Formatter}, sync} +}; use tokio::sync::Mutex; +use crate::errors::Result; + pub(crate) type ProtectedQueue = sync::Arc>>; #[derive(Clone, Debug)] @@ -23,3 +27,29 @@ impl fmt::Display for CandidateData { )) } } + +#[derive(borsh::BorshSerialize, PartialEq, Clone, Debug)] +pub(crate) struct CommitedBlob { + pub commitment: near_da_primitives::Commitment, + pub data: Vec +} + +impl From for CommitedBlob { + fn from(value: Blob) -> Self { + let commitment = { + let chunks: Vec> = value.data.chunks(256).map(|x| x.to_vec()).collect(); + near_primitives::merkle::merklize(&chunks).0 .0 + }; + + Self { + commitment, + data: value.data + } + } +} + +pub(crate) fn try_transform_payload(payload: &[u8]) -> Result> { + let submit_request: SubmitRequest = borsh::de::from_slice(payload)?; + let commited_blob: CommitedBlob = Blob::new(submit_request.data).into(); + Ok(borsh::to_vec(&commited_blob)?) +} diff --git a/operator/consumer/queues_listener.go b/operator/consumer/queues_listener.go index 4f11760e..3fafba8d 100644 --- a/operator/consumer/queues_listener.go +++ b/operator/consumer/queues_listener.go @@ -18,24 +18,12 @@ var ( ) // Type reflections of NEAR DA client submission format -type ShareVersion = uint32 type Commitment = [32]byte type TransactionId = [32]byte -type Namespace struct { - Version uint8 - Id uint32 -} - -type Blob struct { - Namespace Namespace - ShareVersion ShareVersion - Commitment Commitment - Data []byte -} - -type SubmitRequest struct { - Blobs []Blob +type CommittedBlob struct { + Commitment Commitment + Data []byte } // Type reflection of MQ format @@ -106,8 +94,8 @@ func (l *QueuesListener) listen(ctx context.Context, rollupId uint32, rollupData continue } - submitRequest := new(SubmitRequest) - err = borsh.Deserialize(submitRequest, publishPayload.Data) + committedBlob := new(CommittedBlob) + err = borsh.Deserialize(committedBlob, publishPayload.Data) if err != nil { l.logger.Error("Invalid blob", "d.Body", d.Body, "err", err) l.eventListener.OnFormatError() @@ -116,33 +104,31 @@ func (l *QueuesListener) listen(ctx context.Context, rollupId uint32, rollupData continue } - for _, blob := range submitRequest.Blobs { - var blocks []*types.Block - if err := rlp.DecodeBytes(blob.Data, &blocks); err != nil { - l.logger.Warn("Invalid block", "rollupId", rollupId, "err", err) - l.eventListener.OnFormatError() + var blocks []*types.Block + if err := rlp.DecodeBytes(committedBlob.Data, &blocks); err != nil { + l.logger.Warn("Invalid block", "rollupId", rollupId, "err", err) + l.eventListener.OnFormatError() - continue - } + continue + } - for _, block := range blocks { - blockData := BlockData{ - RollupId: rollupId, - TransactionId: publishPayload.TransactionId, - Commitment: blob.Commitment, - Block: *block, - } - - l.logger.Info( - "MQ Block", - "rollupId", rollupId, - "blockHeight", blockData.Block.Header().Number.Uint64(), - "transactionId", blockData.TransactionId, - "commitment", blockData.Commitment, - "listener", fmt.Sprintf("%p", l), - ) - l.receivedBlocksC <- blockData + for _, block := range blocks { + blockData := BlockData{ + RollupId: rollupId, + TransactionId: publishPayload.TransactionId, + Commitment: committedBlob.Commitment, + Block: *block, } + + l.logger.Info( + "MQ Block", + "rollupId", rollupId, + "blockHeight", blockData.Block.Header().Number.Uint64(), + "transactionId", blockData.TransactionId, + "commitment", blockData.Commitment, + "listener", fmt.Sprintf("%p", l), + ) + l.receivedBlocksC <- blockData } l.logger.Info("Acking delivery", "rollupId", rollupId) diff --git a/relayer/cmd/Dockerfile b/relayer/cmd/Dockerfile index 47a179de..d0ad3616 100644 --- a/relayer/cmd/Dockerfile +++ b/relayer/cmd/Dockerfile @@ -4,10 +4,11 @@ FROM rust:1.75 AS near-da-builder RUN cargo install --force cbindgen WORKDIR /near-da -RUN git clone https://github.com/taco-paco/rollup-data-availability.git +RUN git clone https://github.com/near/rollup-data-availability.git WORKDIR /near-da/rollup-data-availability -RUN git checkout c9ec12924b27e37b8c40e7ab1a051a64b363cfd6 +# Checkout to version 0.4.0 +RUN git checkout 0c54b4fc2acce11f96f4f48545e24f95f8715c85 # Build & copy libnear_da_rpc_sys static library for relayer compilation RUN make da-rpc-sys