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

go-algorand 3.26.0-stable Release PR #6145

Merged
merged 85 commits into from
Sep 27, 2024

Conversation

Algo-devops-service
Copy link
Contributor

@Algo-devops-service Algo-devops-service commented Sep 26, 2024

GitHub Logo

Overview

This release adds experimental support for libp2p networking, a major advance for Algorand decentralization. We would like to emphasize that this support is in preview mode only, and not recommended for production use cases yet.

What's New

  • libp2p networking support (experimental preview)
  • AVM enhancements
  • Mac OS X universal binary

Changelog

New Features

  • Network: p2p traffic exchange for algorand node (#5939)

Enhancements

  • AVM: Derive looser, but more principled, checks of txn max size (#6114)
  • AVM: Provide access to some more block header values (#6107)
  • AVM: Expose relevant incentive constants (#6025)
  • Algons: expose error for dnsaddr command (#6121)
  • Build: add universal Mac make target (#6023)
  • Ci: update nightly builds to use universal mac update (#6071)
  • Cicd: remove mac AMD64 support from circleci (#6036)
  • Cmd: Add goal node subcommand to generate peer private key (#6078)
  • Config: use P2PHybridIncomingConnectionsLimit only for hybrid mode (#6103)
  • Config: Expose merged configuration for easier debugging (#6049)
  • Config: Add warning if EndpointAddress and NetAddress ports are equal (#6006)
  • Config: Add GoMemLimit config option and use with 10-node test (#5975)
  • Docs: p2p package overview (#6096)
  • Installer: add support for algoh to systemd installs (#6102)
  • Logging: change transaction pool re-evaluation message from warn to info (#6047)
  • Metrics: collect total netdev sent/received bytes (#6108)
  • Metrics: Add algod version to metrics (#6003)
  • Netgoal: allow unknown template tokens (#6091)
  • Network: remove ws net proto 2.1 (#6081)
  • Network: use http.ResponseController instead of GetHTTPRequestConnection (#6044)
  • Network: Allow short-lived connections to query /status endpoint when at full capacity (#6009)
  • P2p: store private keys as PKCS#8 ASN.1 DER PEM (#6119)
  • P2p: Add algod_network_p2p_* traffic metrics (#6105)
  • P2p: get rid of interface{} from PeerStore methods (#6101)
  • P2p: handle txns in pubsub validator (#6070)
  • P2p: do not advertise private and non-routable addresses (#6092)
  • P2p: support EnableGossipService in p2p streams (#6073)
  • P2p: hybrid node net identity for connection deduplication (#6035)
  • P2p: Introduce profiles for hybridRelay, hybridArchival, and hybridClient. (#6062)
  • P2p: Disable circuit relaying via libp2p.NoListenAddrs (#6064)
  • REST API: make RawTransactionAsync developer API (#6069)
  • Scripts: allow metrics filtering by labels in metrics_viz.py (#6125)
  • Tests: set pprof labels for goroutines that use the same code for different cases (#4350)
  • Tests: preserve logs on LibGoalFixture failure (#6030)

Bugfixes

  • Algod: fix telemetry lookup if phonebook is used (#6061)
  • Catchup: skip logging err for catchup cancellation (#6053)
  • Catchup: do not loop forever if there is no peers (#6037)
  • Ci: fix mac universal rebuild for nightlies (#6084)
  • Ci: update to CentOS Stream 9 and start integrating universal target (#6080)
  • Ci: increase artifact upload timeout (#6050)
  • Cicd: fix broken ci-build target (#6087)
  • Config: ensure both ws and p2p net running the same mode in hybrid (#6130)
  • Ledger: restore block listeners on reloadLedger (#6041)
  • Legacy Docker: pin ubuntu version (#6028)
  • Network: fix outgoing HTTP rate limiting (#6118)
  • Network: fix publicKeyIdentTracker data race in hybrid mode (#6110)
  • Node: clear new p2p net handlers on fast catchup (#6127)
  • Node: close ledger and part keys on node shutdown (#6039)
  • P2p: reuse existing libp2p.Host for http clients (#6129)
  • P2p: make sure p2p http server runs on all interfaces (#6123)
  • P2p: do not register closing peer (#6086)
  • P2p: fix connection deduplication in hybrid mode (#6082)
  • REST API: Fix LedgerStateDelta JSON encoding (#6106)
  • REST API: Fix to Disable API authentication (#6067)
  • Simulate: fix signers (#5942)
  • Tests: fix expect tests and add EOF linter (#6122)
  • Tests: fix a race in TestP2PwsStreamHandlerDedup (#6116)
  • Tests: fix e2e subs goal-partkey-commands (#6095)
  • Tests: fix flushing in TestVotersReloadFromDiskAfterOneStateProofCommitted (#6090)
  • Tests: fix concurrent accout commits in TestLedgerVerifiesOldStateProofs (#6060)
  • Tests: fix TestVotersReloadFromDiskAfterOneStateProofCommitted (#6024)
  • Txhandler: fix TestTxHandlerAppRateLimiter (#6075)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

algorandskiy and others added 30 commits June 11, 2024 12:56
* Add context cancellation check to fetchRound peers retrieval loop
* This prevented some e2e tests to finish when a other nodes
  quit but the last node fell into catchup mode
Functional p2p support for gossip network:
* DHT advertisement and peers capabilities
* Hybrid networking when a node handles both legacy websocket and libp2p networks
* HTTP over p2p support for catching up from p2p nodes
* P2P network cluster test scenarios
* libp2p and DHT metrics and logging handling

Co-authored-by: Eric Warehime <[email protected]>
Co-authored-by: cce <[email protected]>
onetechnical and others added 24 commits August 15, 2024 13:33
Copy link

codecov bot commented Sep 26, 2024

Codecov Report

Attention: Patch coverage is 61.94969% with 726 lines in your changes missing coverage. Please review.

Project coverage is 56.49%. Comparing base (26362ad) to head (c0aea8a).
Report is 89 commits behind head on rel/stable.

Files with missing lines Patch % Lines
network/p2pNetwork.go 74.60% 76 Missing and 20 partials ⚠️
network/hybridNetwork.go 39.65% 65 Missing and 5 partials ⚠️
network/p2p/p2p.go 51.79% 62 Missing and 5 partials ⚠️
network/p2p/logger.go 0.00% 55 Missing ⚠️
network/p2p/http.go 0.00% 50 Missing ⚠️
daemon/algod/server.go 0.00% 48 Missing ⚠️
network/p2p/peerID.go 35.71% 19 Missing and 8 partials ⚠️
network/p2p/streams.go 0.00% 27 Missing ⚠️
data/txHandler.go 76.78% 17 Missing and 9 partials ⚠️
network/p2p/capabilities.go 61.19% 22 Missing and 4 partials ⚠️
... and 36 more
Additional details and impacted files
@@              Coverage Diff               @@
##           rel/stable    #6145      +/-   ##
==============================================
+ Coverage       56.31%   56.49%   +0.18%     
==============================================
  Files             486      499      +13     
  Lines           68487    70029    +1542     
==============================================
+ Hits            38568    39563     +995     
- Misses          27315    27798     +483     
- Partials         2604     2668      +64     
Flag Coverage Δ
56.49% <61.94%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@onetechnical onetechnical self-assigned this Sep 26, 2024
@algojohnlee algojohnlee merged commit 0d10b24 into algorand:rel/stable Sep 27, 2024
47 checks passed
@onetechnical onetechnical deleted the relstable3.26.0 branch September 27, 2024 18:59
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.