Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update rules_go to 0.29.0, go to 1.17.2, libp2p to v0.15.1 #9772

Closed
wants to merge 20 commits into from

Conversation

prestonvanloon
Copy link
Member

@prestonvanloon prestonvanloon commented Oct 14, 2021

What type of PR is this?

Other

What does this PR do? Why is it needed?

Which issues(s) does this PR fix?

Fixes #

Other notes for review

Blocked by #9725 and ethereum/go-ethereum#23738
Blocked by libp2p/go-libp2p#1228

This PR also requires an update in go-libp2p, go-libp2p-pubsub, and all of their dependencies. Otherwise, there is a panic in qtls-go1.15.

panic: qtls.ClientHelloInfo doesn't match
--
  |  
  | goroutine 1 [running]:
  | github.com/marten-seemann/qtls-go1-15.init.0()
  | external/com_github_marten_seemann_qtls_go1_15/unsafe.go:20 +0x132

Updated dependencies

Dependency Diff Summary of Changes
AndreasBriese/bbloom@e2d15f3...46b345b N/A - Not used by main module
dgraph-io/badger@v1.6.1...v1.6.2 N/A - Not used by main module
envoyproxy/go-control-plane@668b12f...63b5d3c N/A - Not used by main module
ethereum/go-ethereum@v1.10.10...b97f578 Update to include ethereum/go-ethereum#23739, a requirement for static analysis to build go-ethereum
google/uuid@v1.2.0...v1.3.0 Adds new functionality for Nullable uuids and a randomness pool for uuidv4 (opt-in). No changes in the code behavior from prysm. This is used in tools/keystores.
grpc-ecosystem/grpc-gateway@v1.9.5...v1.16.0
ipfs/go-datastore@v0.4.5...v0.4.6 N/A - Not used by main module
ipfs/go-ds-badger@v0.2.3...v0.2.7 N/A - Not used by main module
klauspost/cpuid@v2.0.8...v2.0.9 Support for AVX512 FP16 instruction. This is used in crypto/hash via minio/sha256-simd. This change may effect behavior in CPU devices that support AVX512 instructions.
libp2p/go-addr-util@v0.0.2...v0.1.0 Migration of deprecated dependency github.com/multiformats/go-multiaddr-net
libp2p/go-libp2p@v0.14.1...v0.15.1
libp2p/go-libp2p-core@v0.8.6...v0.9.0
libp2p/go-libp2p-noise@v0.2.0...v0.2.2 Migrate from deprecated API marshalling transport public key in session handshake payload generation. Should be no factor to Prysm.
libp2p/go-libp2p-peerstore@v0.2.7...v0.2.8
libp2p/go-libp2p-pubsub@v0.5.0...v0.5.6
libp2p/go-libp2p-quic-transport@v0.10.0...v0.11.2 Updates breaking API changes from github.com/lucas-clemente/quic-go. Should be no factor to Prysm.
libp2p/go-libp2p-swarm@v0.5.0...v0.5.3 🚨 Potential breaking change libp2p/go-libp2p-swarm#260
libp2p/go-libp2p-tls@8a8ad62...v0.2.0
libp2p/go-ws-transport@v0.4.0...v0.5.0 Removal of unnecessarily exported WsCodec. Use of different default codec registration, but no functional difference. Should be no factor to Prysm.
quic-go/quic-go@v0.19.3...v0.21.2
marten-seemann/qtls-go1-15@v0.1.1...v0.1.5
multiformats/go-multiaddr@v0.3.3...v0.4.0
nxadm/tail@v1.4.4...v1.4.8 Added examples, lint, commentary. Should be no factor for Prysm.
onsi/ginkgo@v1.14.0...v1.16.4 BDD testing library, should be no factor
onsi/gomega@v1.10.1...v1.13.0 Used in logrus prefix formatter tests, should be no factor.
prometheus/common@v0.29.0...v0.30.0 Add the ability to enable HTTP2 again via an env variable. No factor for Prysm
prometheus/procfs@v0.7.0...v0.7.3 Bug fixes for proc stats in Prometheus. Should be no factor for Prysm.
prysmaticlabs/protoc-gen-go-cast@1e141af...757fae4 Updates rules_go and bazel to match this PR.
grpc/grpc-go@v1.37.0...v1.40.0 Many fixes and new features (mostly new features in xds). We expect no issues by these stable releases, but this may affect beacon chain and validator communication as well as grpc-gateway or json api endpoints.
golang.org/x/net aaa1db679c0d...60bc85c4be6d
golang.org/x/text v0.3.6...v0.3.7
go.uber.org/zap v1.18.1...v1.19.0

New dependencies

  • github.com/cncf/xds/go
  • github.com/go-task/slim-sprig
  • github.com/libp2p/zeroconf/v2
  • github.com/marten-seemann/qtls-go1-16
  • github.com/marten-seemann/qtls-go1-17
  • go.opentelemetry.io/proto/otlp

Removed dependencies

  • github.com/iancoleman/strcase
  • github.com/ipfs/go-ipfs-addr
  • github.com/marten-seemann/qtls
  • github.com/nbutton23/zxcvbn-go

Patches / hacks removed

@prestonvanloon prestonvanloon added Blocked Blocked by research or external factors and removed Blocked Blocked by research or external factors labels Oct 14, 2021
@prestonvanloon prestonvanloon added the Blocked Blocked by research or external factors label Oct 19, 2021
@prestonvanloon prestonvanloon removed the Blocked Blocked by research or external factors label Oct 20, 2021
@prestonvanloon
Copy link
Member Author

This PR is no longer blocked after updating a wide set of libp2p deps. This will require review and thorough testing.

This PR will not be made for review until after Altair hardfork is complete.

@prestonvanloon prestonvanloon changed the title Update rules_go to 0.29.0 and go to 1.17.2 Update rules_go to 0.29.0, go to 1.17.2, libp2p to v0.15.1 Oct 29, 2021
@prestonvanloon
Copy link
Member Author

Looking at new rules_go changes and how this affects fuzz builds.
The stdlib builder is now influenced by fuzz flags which is problematic for any binary due to "main" symbol collisions.

I expect the resolution is to rework how fuzz adds linker/compiler flags.
I'm thinking this will need to pivot to a starlark transition rather than a required --config=fuzz to avoid builders, static analysis, and build-time tooling being built as a fuzz target.

@nisdas nisdas mentioned this pull request Dec 1, 2021
1 task
@prestonvanloon
Copy link
Member Author

Closing now that #9960 has done most of the dependency updates. This pull request will be re-attempted with the go 1.17 and/or bazel changes in another review.

@nisdas nisdas deleted the update-go-bazel branch April 15, 2022 06:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants