Skip to content

abci: Add relaxed local client synchronization models (backport #1141)#2

Merged
yihuang merged 2 commits intocrypto-org-chain:v0.38.xfrom
yihuang:backport-unsync-client
Nov 1, 2024
Merged

abci: Add relaxed local client synchronization models (backport #1141)#2
yihuang merged 2 commits intocrypto-org-chain:v0.38.xfrom
yihuang:backport-unsync-client

Conversation

@yihuang
Copy link

@yihuang yihuang commented Oct 23, 2024

  • proxy: Remove "unsynchronized" local client creator

  • proxy: Expand client creator interface

Expand the ClientCreator interface to allow the caller to explicitly specify the "connection" whose client they are creating. This potentially gives greater control over the concurrency model employed in each type of connection.

  • abci/client: Clarify NewLocalClient description

  • proxy: Add connection-synchronized local client creator

Analogous to the old "unsynchronized" local client creator.

  • abci/client: Add unsynchronized local client

  • proxy: Add consensus-synchronized local client creator

  • proxy: Fix mock configuration in test

  • Add changelog entries

  • Remove changelog entry - no longer necessary

  • proxy: Add unsynchronized local client creator

  • changelog: Add entry for unsync local client creator

  • Update 1141-abci-unsync-proxy.md



PR checklist

  • Tests written/updated
  • Changelog entry added in .changelog (we use unclog to manage our changelog)
  • Updated relevant documentation (docs/ or spec/) and code comments

* proxy: Remove "unsynchronized" local client creator

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* proxy: Expand client creator interface

Expand the `ClientCreator` interface to allow the caller to explicitly
specify the "connection" whose client they are creating. This
potentially gives greater control over the concurrency model employed in
each type of connection.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* abci/client: Clarify NewLocalClient description

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* proxy: Add connection-synchronized local client creator

Analogous to the old "unsynchronized" local client creator.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* abci/client: Add unsynchronized local client

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* proxy: Add consensus-synchronized local client creator

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* proxy: Fix mock configuration in test

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Add changelog entries

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove changelog entry - no longer necessary

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* proxy: Add unsynchronized local client creator

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* changelog: Add entry for unsync local client creator

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Update 1141-abci-unsync-proxy.md

Co-authored-by: Adi Seredinschi <adizere@gmail.com>

---------

Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Adi Seredinschi <adizere@gmail.com>
@yihuang yihuang requested a review from mmsqe October 23, 2024 07:27
@yihuang yihuang marked this pull request as draft October 23, 2024 07:38
@yihuang
Copy link
Author

yihuang commented Oct 28, 2024

sdk 0.50 only works with NewConnSyncLocalClientCreator, so probably no need this.

@yihuang yihuang closed this Oct 28, 2024
@yihuang yihuang deleted the backport-unsync-client branch October 28, 2024 02:48
@yihuang yihuang restored the backport-unsync-client branch November 1, 2024 10:51
@yihuang yihuang reopened this Nov 1, 2024
@yihuang yihuang marked this pull request as ready for review November 1, 2024 10:53
@yihuang yihuang merged commit cee5fa0 into crypto-org-chain:v0.38.x Nov 1, 2024
@yihuang yihuang deleted the backport-unsync-client branch November 1, 2024 11:09
JayT106 pushed a commit that referenced this pull request Jan 23, 2026
due to sec vuln

Vulnerability #1: GO-2025-3420
Sensitive headers incorrectly sent after cross-domain redirect in
net/http
  More info: https://pkg.go.dev/vuln/GO-2025-3420
  Standard library
    Found in: net/http@go1.23.1
    Fixed in: net/http@go1.23.5
    Example traces found:
Error: #1: rpc/jsonrpc/client/http_json_client.go:231:34:
client.Client.Call calls http.Client.Do
Error: #2: libs/cli/setup.go:89:26: cli.Executor.Execute calls
cobra.Command.Execute, which eventually calls http.Client.Get
Error: #3: cmd/cometbft/commands/debug/util.go:70:23: debug.dumpProfile
calls http.Get

Vulnerability #2: GO-2025-3373
Usage of IPv6 zone IDs can bypass URI name constraints in crypto/x509
  More info: https://pkg.go.dev/vuln/GO-2025-3373
  Standard library
    Found in: crypto/x509@go1.23.1
    Fixed in: crypto/x509@go1.23.5
    Example traces found:
Error: #1: abci/tutorials/abci-v2-forum-app/model/db.go:143:20:
model.DB.Close calls badger.DB.Close, which eventually calls
x509.CertPool.AppendCertsFromPEM
Error: #2: internal/autofile/group.go:468:30: autofile.GroupReader.Read
calls bufio.Reader.Read, which eventually calls x509.Certificate.Verify
Error: #3: rpc/jsonrpc/client/ws_client.go:290:29: client.WSClient.dial
calls websocket.Dialer.Dial, which eventually calls
x509.Certificate.VerifyHostname
Error: #4: light/errors.go:483:84: light.errBadWitness.Error calls
x509.HostnameError.Error
Error: #5: rpc/jsonrpc/server/http_server.go:166:19:
server.ServeTLSWithShutdown calls http.Server.ServeTLS, which eventually
calls x509.ParseCertificate
Error: #6: rpc/jsonrpc/server/http_server.go:166:19:
server.ServeTLSWithShutdown calls http.Server.ServeTLS, which eventually
calls x509.ParseECPrivateKey
Error: #7: rpc/jsonrpc/server/http_server.go:166:19:
server.ServeTLSWithShutdown calls http.Server.ServeTLS, which eventually
calls x509.ParsePKCS1PrivateKey
Error: #8: rpc/jsonrpc/server/http_server.go:166:19:
server.ServeTLSWithShutdown calls http.Server.ServeTLS, which eventually
calls x509.ParsePKCS8PrivateKey
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.

3 participants