Skip to content

Commit 1214056

Browse files
cmwatersstaheri14raminTropicalDog17rootulp
authored
chore: updates from main (#1441)
## Description This PR ports over a few missing commits from main into v0.34.x-celestia. --------- Co-authored-by: Sanaz Taheri <35961250+staheri14@users.noreply.github.com> Co-authored-by: ramin <raminkeene@gmail.com> Co-authored-by: Tuan Tran <tuan.ta204701@sis.hust.edu.vn> Co-authored-by: Rootul P <rootulp@gmail.com>
1 parent 3aea3d1 commit 1214056

21 files changed

+132
-39
lines changed

.github/CODEOWNERS

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,3 @@
88
# codeowner specified below. For this reason, the global codeowners
99
# are often repeated in package-level definitions.
1010
* @celestiaorg/celestia-core
11-
12-
# Overrides for tooling packages
13-
docs/celestia-architecture @liamsi @adlerjohn

.github/workflows/check-generated.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
steps:
4444
- uses: actions/setup-go@v4
4545
with:
46-
go-version: "1.22.2"
46+
go-version: "1.22.5"
4747

4848
- uses: actions/checkout@v4
4949
with:

.github/workflows/coverage.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
- uses: actions/checkout@v4
1313
- uses: actions/setup-go@v4
1414
with:
15-
go-version: "1.22.2"
15+
go-version: "1.22.5"
1616
- name: Create a file with all the pkgs
1717
run: go list ./... > pkgs.txt
1818
- name: Split pkgs into 4 files
@@ -48,8 +48,8 @@ jobs:
4848
steps:
4949
- uses: actions/setup-go@v4
5050
with:
51-
go-version: "1.22.2"
52-
- uses: actions/checkout@v4
51+
go-version: "1.22.5"
52+
- uses: actions/checkout@v3
5353
- uses: technote-space/get-diff-action@v6
5454
with:
5555
PATTERNS: |
@@ -70,8 +70,8 @@ jobs:
7070
steps:
7171
- uses: actions/setup-go@v4
7272
with:
73-
go-version: "1.22.2"
74-
- uses: actions/checkout@v4
73+
go-version: "1.22.5"
74+
- uses: actions/checkout@v3
7575
- uses: technote-space/get-diff-action@v6
7676
with:
7777
PATTERNS: |

.github/workflows/e2e-manual.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
steps:
1717
- uses: actions/setup-go@v4
1818
with:
19-
go-version: '1.22.2'
19+
go-version: '1.22.5'
2020

2121
- uses: actions/checkout@v4
2222

.github/workflows/e2e-nightly-34x.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
steps:
2424
- uses: actions/setup-go@v4
2525
with:
26-
go-version: '1.22.2'
26+
go-version: '1.22.5'
2727

2828
- uses: actions/checkout@v4
2929
with:

.github/workflows/e2e.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
steps:
1515
- uses: actions/setup-go@v4
1616
with:
17-
go-version: '1.22.2'
17+
go-version: '1.22.5'
1818
- uses: actions/checkout@v3
1919
- uses: technote-space/get-diff-action@v6
2020
with:

.github/workflows/fuzz-nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
steps:
1212
- uses: actions/setup-go@v4
1313
with:
14-
go-version: '1.22.2'
14+
go-version: '1.22.5'
1515

1616
- uses: actions/checkout@v4
1717

.github/workflows/govulncheck.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
steps:
1717
- uses: actions/setup-go@v3
1818
with:
19-
go-version: "1.22.2"
19+
go-version: "1.22.5"
2020
- uses: actions/checkout@v3
2121
- uses: technote-space/get-diff-action@v6
2222
with:

.github/workflows/lint.yml

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,35 @@ name: Golang Linter
1010

1111
on:
1212
pull_request:
13+
paths:
14+
- '**/*.go'
15+
- 'go.mod'
16+
- 'go.sum'
1317
push:
1418
branches:
1519
- v[0-9]+.[0-9]+.x-celestia
20+
paths:
21+
- '**/*.go'
22+
- 'go.mod'
23+
- 'go.sum'
24+
1625
jobs:
1726
golangci:
1827
name: golangci-lint
1928
runs-on: ubuntu-latest
2029
timeout-minutes: 8
2130
steps:
2231
- uses: actions/checkout@v4
23-
- uses: actions/setup-go@v4
24-
with:
25-
go-version: '1.22.2'
26-
- uses: technote-space/get-diff-action@v6
32+
33+
- uses: actions/setup-go@v5
2734
with:
28-
PATTERNS: |
29-
**/**.go
30-
go.mod
31-
go.sum
32-
- uses: golangci/golangci-lint-action@v3.2.0
35+
go-version-file: 'go.mod'
36+
37+
- uses: golangci/golangci-lint-action@v4.0.0
3338
with:
3439
# Required: the version of golangci-lint is required and
3540
# must be specified without patch version: we always use the
3641
# latest patch version.
3742
version: v1.56.2
3843
args: --timeout 10m
3944
github-token: ${{ secrets.github_token }}
40-
if: env.GIT_DIFF

.github/workflows/pre-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818

1919
- uses: actions/setup-go@v4
2020
with:
21-
go-version: '1.22.2'
21+
go-version: '1.22.5'
2222

2323
# Similar check to ./release-version.yml, but enforces this when pushing
2424
# tags. The ./release-version.yml check can be bypassed and is mainly

.github/workflows/release-version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515

1616
- uses: actions/setup-go@v4
1717
with:
18-
go-version: '1.22.2'
18+
go-version: '1.22.5'
1919

2020
- name: Check version
2121
run: |

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616

1717
- uses: actions/setup-go@v4
1818
with:
19-
go-version: '1.22.2'
19+
go-version: '1.22.5'
2020

2121
- name: Generate release notes
2222
run: |

.github/workflows/tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
steps:
2626
- uses: actions/setup-go@v4
2727
with:
28-
go-version: "1.22.2"
28+
go-version: "1.22.5"
2929
- uses: actions/checkout@v3
3030
- uses: technote-space/get-diff-action@v6
3131
with:
@@ -121,7 +121,7 @@ jobs:
121121
# steps:
122122
# - uses: actions/setup-go@v3
123123
# with:
124-
# go-version: "1.22.2"
124+
# go-version: "1.22.5"
125125
# - uses: actions/checkout@v3
126126
# - uses: technote-space/get-diff-action@v6
127127
# with:

DOCKER/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Use a build arg to ensure that both stages use the same,
22
# hopefully current, go version.
3-
ARG GOLANG_BASE_IMAGE=golang:1.22.4-alpine
3+
ARG GOLANG_BASE_IMAGE=golang:1.22.5-alpine
44

55
# stage 1 Generate CometBFT Binary
66
FROM --platform=$BUILDPLATFORM $GOLANG_BASE_IMAGE as builder

Makefile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ BUILD_FLAGS = -mod=readonly -ldflags "$(LD_FLAGS)"
1010
HTTPS_GIT := https://github.com/cometbft/cometbft.git
1111
CGO_ENABLED ?= 0
1212

13+
BUF_VERSION := v1.31.0
1314
# handle nostrip
1415
ifeq (,$(findstring nostrip,$(COMETBFT_BUILD_OPTIONS)))
1516
BUILD_FLAGS += -trimpath
@@ -154,7 +155,7 @@ endif
154155

155156
proto-gen: check-proto-deps
156157
@echo "Generating Protobuf files"
157-
@go run github.com/bufbuild/buf/cmd/buf@v1.29.0 generate
158+
@go run github.com/bufbuild/buf/cmd/buf@$(BUF_VERSION) generate
158159
@mv ./proto/tendermint/abci/types.pb.go ./abci/types/
159160
@cp ./proto/tendermint/rpc/grpc/types.pb.go ./rpc/grpc
160161
.PHONY: proto-gen
@@ -163,7 +164,7 @@ proto-gen: check-proto-deps
163164
# execution only.
164165
proto-lint: check-proto-deps
165166
@echo "Linting Protobuf files"
166-
@go run github.com/bufbuild/buf/cmd/buf@v1.29.0 lint
167+
@go run github.com/bufbuild/buf/cmd/buf@$(BUF_VERSION) lint
167168
.PHONY: proto-lint
168169

169170
proto-format: check-proto-format-deps
@@ -176,11 +177,11 @@ proto-check-breaking: check-proto-deps
176177
@echo "Note: This is only useful if your changes have not yet been committed."
177178
@echo " Otherwise read up on buf's \"breaking\" command usage:"
178179
@echo " https://docs.buf.build/breaking/usage"
179-
@go run github.com/bufbuild/buf/cmd/buf@v1.29.0 breaking --against ".git"
180+
@go run github.com/bufbuild/buf/cmd/buf@$(BUF_VERSION) breaking --against ".git"
180181
.PHONY: proto-check-breaking
181182

182183
proto-check-breaking-ci:
183-
@go run github.com/bufbuild/buf/cmd/buf@v1.29.0 breaking --against $(HTTPS_GIT)#branch=v0.34.x-celestia
184+
@go run github.com/bufbuild/buf/cmd/buf@$(BUF_VERSION) breaking --against $(HTTPS_GIT)#branch=v0.34.x-celestia
184185
.PHONY: proto-check-breaking-ci
185186

186187
###############################################################################

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ This repo intends on preserving the minimal possible diff with [cometbft/cometbf
5050
- **specific to Celestia**: consider if [celestia-app](https://github.com/celestiaorg/celestia-app) is a better target
5151
- **not specific to Celestia**: consider making the contribution upstream in CometBFT
5252

53-
1. [Install Go](https://go.dev/doc/install) 1.22.4+
53+
1. [Install Go](https://go.dev/doc/install) 1.22.5+
5454
2. Fork this repo
5555
3. Clone your fork
5656
4. Find an issue to work on (see [good first issues](https://github.com/celestiaorg/celestia-core/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22))

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/tendermint/tendermint
22

3-
go 1.22.4
3+
go 1.22.5
44

55
require (
66
github.com/BurntSushi/toml v1.2.1

scripts/proto-gen.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ cd "$(git rev-parse --show-toplevel)"
1010

1111
# Run inside Docker to install the correct versions of the required tools
1212
# without polluting the local system.
13-
docker run --rm -i -v "$PWD":/w --workdir=/w golang:1.22.4-alpine sh <<"EOF"
13+
docker run --rm -i -v "$PWD":/w --workdir=/w golang:1.22.5-alpine sh <<"EOF"
1414
apk add git make
1515
1616
go install github.com/bufbuild/buf/cmd/buf

spec/p2p/reactors/mempool-v1.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Mempool V1 Reactor
2+
3+
## Overview
4+
5+
The Celestia-core's p2p layer, which is a fork of CometBFT, consists of channels and reactors. Peers establish connections within specific channels, effectively forming peer-to-peer groups (each channel represents such a group). The transmission of messages within a channel is governed by the associated reactor, essentially containing the protocol rules for that channel.
6+
7+
One notable channel is the mempool channel, identified as [`MempoolChannel`](https://github.com/celestiaorg/celestia-core/blob/3f3b7cc57f5cfc5e846ce781a9a407920e54fb72/mempool/mempool.go#L14) with a specific channel ID of [`0x30`](https://github.com/celestiaorg/celestia-core/blob/3f3b7cc57f5cfc5e846ce781a9a407920e54fb72/mempool/mempool.go#L14). The mempool reactor manages the dissemination of transactions across the network. It's important to highlight that there's a direct correspondence between reactors and the channels they are connected to. Consequently, the mempool reactor is the exclusive reactor linked to the mempool channel with ID `0x30`. This document will provide an overview of the protocol implemented by the mempool v1 reactor along with its traffic analysis.
8+
9+
## Transaction Flow and Lifecycle in a Node
10+
11+
A node can receive a transaction through one of two pathways: either a user initiates the transaction directly to the node, or the node acquires a transaction from another peer. Upon receiving a transaction, the following steps occur:
12+
13+
1. The transaction's validity is assessed, and if it passes the validation criteria, it is added to the mempool. Furthermore, the height at which the transaction is received is set to the current block height. This information will later be useful in purging old transactions from the mempool once their time-to-live (TTL) has elapsed and have not been included in any blocks.
14+
2. **Peer Tracking**: In the event that the transaction originates from another peer, the sending peer is marked to prevent redundant transmission of the same transaction.
15+
Subsequently, there are two concurrent processes underway, namely, the _mempool management_ and _broadcast process_, as explained in the remaining items below.
16+
3. **Mempool Management**:
17+
18+
- Transactions that find their way into the mempool remain there until one of two conditions is met: either the mempool reaches its capacity limit or a new block is committed.
19+
- When a [block is committed](https://github.com/celestiaorg/celestia-core/blob/367caa33ef5ab618ea357189e88044dbdbd17776/state/execution.go#L324):
20+
- The transactions within that block that are successfully delivered to the app are removed from the mempool ([ref](https://github.com/celestiaorg/celestia-core/blob/993c1228977f206c80cb0f87ac1d4f002826e904/mempool/v1/mempool.go#L418)). They are also placed in the mempool cache ([ref](https://github.com/celestiaorg/celestia-core/blob/993c1228977f206c80cb0f87ac1d4f002826e904/mempool/v1/mempool.go#L411-L412)).
21+
- The remaining transactions are subjected to two checks:
22+
- Their Time-to-Live (TTL) is examined ([ref](https://github.com/celestiaorg/celestia-core/blob/993c1228977f206c80cb0f87ac1d4f002826e904/mempool/v1/mempool.go#L421)), and any transactions that have expired are promptly removed from the mempool ([ref](https://github.com/celestiaorg/celestia-core/blob/993c1228977f206c80cb0f87ac1d4f002826e904/mempool/v1/mempool.go#L743)).
23+
- Next, the remaining transactions are re-evaluated for validity against the updated state ([ref](https://github.com/celestiaorg/celestia-core/blob/993c1228977f206c80cb0f87ac1d4f002826e904/mempool/v1/mempool.go#L429-L430)) due to the mempool [`recheck` config](https://github.com/celestiaorg/celestia-core/blob/2f93fc823f17c36c7090f84694880c85d3244764/config/config.go#L708) that is set to `true` ([ref](https://github.com/celestiaorg/celestia-core/blob/2f93fc823f17c36c7090f84694880c85d3244764/config/config.go#L761)). Any transactions that are found to be invalid are removed from the mempool.
24+
4. **Broadcast Process**:
25+
For each peer and for every transaction residing in the mempool, the following actions are taken ([ref](https://github.com/celestiaorg/celestia-core/blob/64cd9ab7c67c945d755fb4fbd5afb2d352874eea/mempool/v1/reactor.go#L244)):
26+
- A copy of the transaction is dispatched to that peer if the peer
27+
- is online
28+
- supports the mempool channel ID ([ref](https://github.com/celestiaorg/celestia-core/blob/ad660fee8f186d6f7e5e567ea23ea813f5038d90/p2p/peer.go#L319))
29+
- has a height difference of one (meaning it lags behind the transaction by a single block). If the height difference is greater, a waiting period is observed to allow the peer to catch up ([ref](https://github.com/celestiaorg/celestia-core/blob/64cd9ab7c67c945d755fb4fbd5afb2d352874eea/mempool/v1/reactor.go#L286-L289)).
30+
- **Peer Tracking**: Each transaction is sent to a peer only once, and the recipient peer is marked to prevent the retransmission of the same transaction ([ref](https://github.com/celestiaorg/celestia-core/blob/64cd9ab7c67c945d755fb4fbd5afb2d352874eea/mempool/v1/reactor.go#L304)).
31+
32+
## Constraints and Configurations
33+
34+
The relevant constraints and configurations for the mempool are as follows ([ref](https://github.com/celestiaorg/celestia-core/blob/2f93fc823f17c36c7090f84694880c85d3244764/config/config.go#L758)):
35+
36+
- `Size`: This parameter specifies the total number of transactions that the mempool can hold. It is a configurable setting, with a default value of `5000`.
37+
- `MaxTxsBytes`: The `MaxTxsBytes` parameter defines the maximum size of the mempool in bytes, with a default value of `1GB`.
38+
- `MaxTxBytes`: The `MaxTxBytes` parameter specifies the maximum size of an individual transaction, which is set to `1MB`.
39+
- `TTLNumBlocks` and `TTLDuration` : These settings determine the number of blocks and time after which a transaction is removed from the mempool if it has not been included in a block. The default is set to zero, however, on [celestia-app side](https://github.com/celestiaorg/celestia-app/blob/ccfb3e5e87d05d75a92ad85ab199d4f0c4879a0a/app/default_overrides.go#L221-L222) these values are over-written to `5` and `5*15 s`, respectively.
40+
41+
For each peer-to-peer connection, the following limits apply to the aggregate traffic rate of all the channels ([ref](https://github.com/celestiaorg/celestia-core/blob/3f3b7cc57f5cfc5e846ce781a9a407920e54fb72/libs/flowrate/flowrate.go#L177)):
42+
43+
- `SendRate`: The `SendRate` parameter enforces a default sending rate of [`5120000 B= 5MB/s`](https://github.com/celestiaorg/celestia-core/blob/2f93fc823f17c36c7090f84694880c85d3244764/config/config.go#L615). It ensures that data is sent at this maximum rate. This parameter does not seem to be overwritten by the celestia-app.
44+
- `RecvRate`: The `RecvRate` parameter enforces a default receiving rate of [`5120000 B= 5MB/s`](https://github.com/celestiaorg/celestia-core/blob/2f93fc823f17c36c7090f84694880c85d3244764/config/config.go#L616). It ensures that data is received at this maximum rate. This parameter does not seem to be overwritten by the celestia-app.
45+
- `MaxPacketMsgPayloadSize`: The `MaxPacketMsgPayloadSize` parameter sets the maximum payload size for packet messages to `1024` bytes.
46+
47+
<!-- TODO: I am currently investigating the impact of send and rec rate in the total traffic at each node and per connection. It looks like that this is the average rate, but not necessarily a hard limit i.e., the rate may exceed this value but then the excess is amortized over the next period -->
48+
<!-- Depending on the state of this [PR](https://github.com/celestiaorg/celestia-app/pull/2390) we may have further constraints on the bandwidth. -->
49+
50+
Other P2P configs ([ref](https://github.com/celestiaorg/celestia-core/blob/2f93fc823f17c36c7090f84694880c85d3244764/config/config.go#L524)) that would be relevant to the traffic analysis are:
51+
52+
- [`max_num_inbound_peers` and `max_num_outbound_peers`](https://github.com/celestiaorg/celestia-core/blob/37f950717381e8d8f6393437624652693e4775b8/config/config.go#L604-L605): These parameters indicate the total number of inbound and outbound peers, respectively. The default values are `40` for inbound peers and `10` for outbound peers ([excluding persistent peers](https://github.com/celestiaorg/celestia-core/blob/2f93fc823f17c36c7090f84694880c85d3244764/config/config.go#L553-L554)).
53+
<!-- The allocation of max_num_inbound_peers and max_num_outbound_peers across various connection types requires clarification. For instance, whether max_num_inbound_peers includes both unconditional peers and persistent peers or not. -->
54+
55+
## Traffic Rate Analysis
56+
57+
In the analysis provided below, we consider the knowledge of the following network parameters:
58+
59+
- `d`: Node degree (total incoming and outgoing connections)
60+
- `transaction_rate` which specifies that total size of transactions in bytes per second submitted to the network.
61+
62+
Transactions are assumed to comply with the transaction size, are valid and are accepted by the mempool. We also assume all the peers are up and running.
63+
64+
### Traffic Rate Analysis for a Node
65+
66+
We distinguish between the incoming and outgoing traffic rate, and denote them by `incoming_traffic_rate` and `outgoing_traffic_rate`, respectively.
67+
68+
- **Worst case scenario**: a transaction is exchanged by the two ends of
69+
connection simultaneously, contributing to both incoming and outgoing traffic.
70+
In a network, with transaction rate `transaction_rate` and a node with `d` degree, the traffic rates are calculated as follows:
71+
`incoming_traffic_rate = d * transaction_rate`
72+
`outgoing_traffic_rate = d * transaction_rate`
73+
74+
These max rates are further constrained by the `SendRate` and `RecvRate`.
75+
`incoming_traffic_rate = d * min(transaction_rate, RecvRate)`
76+
`outgoing_traffic_rate = d * min(transaction_rate, SendRate)`
77+
78+
- **Best case scenario**: a transaction is exchanged only once, contributing to either incoming or outgoing traffic. This is because both ends of the connection keep track of the transactions they have seen on a connection (whether via sending or receiving). If one peer sends a transaction before the other, they both mark it as sent/received, ensuring they do not redundantly transmit it to each other.
79+
In a network, with transaction rate `transaction_rate` and a node with degree of `d`, the node's traffic rate in best case would be:
80+
`traffic_rate (=incoming_traffic_rate + outgoing_traffic_rate) = d * transaction_rate`
81+
82+
We can draw the following conclusions (to be extended and verified):
83+
84+
- With a known given transaction rate `transaction_rate`, a node's (in + out) traffic rate should range from `d * transaction_rate` to `2 * d * transaction_rate`.
85+
- To handle a particular `transaction_rate` (network throughput), the node's `SendRate` and `RecvRate` should be at least `transaction_rate` to handle the worst case scenario (this is only to undertake the load incurred by the mempool reactor).
86+
87+
### Impact of mempool on other network aspects
88+
89+
- **Block size**: One immediate impact of mempool, is the size of mempool on the block size. Block size can not exceed the mempool size. In the current setting, the mempool size is at max `1GB` meaning Celestia blocks can get as large as that (excluding block header).
90+
- **Network throughput**: TBC
91+
- **Block Time**: TBC

test/docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.22.4
1+
FROM golang:1.22.5
22

33
# Grab deps (jq, hexdump, xxd, killall)
44
RUN apt-get update && \

test/e2e/docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# We need to build in a Linux environment to support C libraries, e.g. RocksDB.
22
# We use Debian instead of Alpine, so that we can use binary database packages
33
# instead of spending time compiling them.
4-
FROM golang:1.22.4-bullseye
4+
FROM golang:1.22.5-bullseye
55

66
RUN apt-get -qq update -y && apt-get -qq upgrade -y >/dev/null
77
RUN apt-get -qq install -y libleveldb-dev librocksdb-dev >/dev/null

0 commit comments

Comments
 (0)