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

Merge unstable to markdown branch #7

Merged
merged 75 commits into from
May 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
72af6fb
Skip calculation of boosted_relay_value when builder_boost_factor pro…
pahor167 Apr 10, 2024
b1f9751
Event-based block lookup tests (#5534)
dapplion Apr 10, 2024
30dc260
Move processing cache out of DA (#5420)
dapplion Apr 10, 2024
54fbdda
Add logging in UnknownBlockHashFromAttestation handling (#5546)
dapplion Apr 10, 2024
c017768
Bump ckzg to use the crates.io version (#5542)
pawanjay176 Apr 10, 2024
3d4e6e2
Remove availability view trait (#5544)
realbigsean Apr 11, 2024
34dbb32
Nest lookup type into request id SingleBlock and SingleBlob (#5562)
dapplion Apr 11, 2024
7e49f82
Only load Kzg in tests if necessary and only load it once (#5555)
jimmygchen Apr 11, 2024
d30ba97
Use the `mesh_n` value from `NetworkLoad` for `PeerScoreSettings` (#5…
jimmygchen Apr 11, 2024
6bac5ce
Deprecate `http-spec-fork` and `http-allow-sync-stalled` (#5500)
eserilev Apr 12, 2024
5fdd3b3
Allow 1 count block request to return 0 blocks (#5554)
dapplion Apr 12, 2024
6fb0b2e
Sync lookup dedup range and blobs (#5561)
dapplion Apr 12, 2024
116a55e
Ensure proper ReqResp response stream termination (#5556)
dapplion Apr 12, 2024
b6a1c86
Use spawn_async in ByRoot handling workers (#5557)
dapplion Apr 12, 2024
fee2ee9
Make SingleLookupRequestState fields private (#5563)
dapplion Apr 15, 2024
f5e0404
Ensure proper ReqResp blocks_by_* response stream termination (#5582)
dapplion Apr 15, 2024
e5b8d12
Use Action in single_block_component_processed (#5564)
dapplion Apr 16, 2024
f689898
Restore Log on Error & Spawn Blocking in Streamer (#5585)
ethDreamer Apr 16, 2024
cda926c
Rename Functions to More Closely Match Spec (#5591)
ethDreamer Apr 16, 2024
49617f3
Set web3signer keep-alive to 20s by default (#5587)
michaelsproul Apr 17, 2024
62e4abf
Fix execution layer redundancy (#5588)
iamit-singh Apr 18, 2024
5c30afb
Revise `secrets-dir` flag in the VC (#5480)
chong-he Apr 18, 2024
5a9e973
Fix on-disk consensus context format (#5598)
michaelsproul Apr 19, 2024
9b5895c
Fix cargo audit RUSTSEC-2024-0336 (#5612)
jxs Apr 22, 2024
67f8405
Update Simulator tests (#5520)
macladson Apr 22, 2024
f7aca97
Handle sync lookup request streams in network context (#5583)
dapplion Apr 22, 2024
532206e
Fix stuck backfill when scheduled work queue is at capacity (#5575)
jimmygchen Apr 22, 2024
ad7f0e0
Delete repetitive execute command in local testnet scripts (#5611)
chong-he Apr 22, 2024
82b131d
Electra: Add New Containers (#5607)
ethDreamer Apr 23, 2024
72a3360
Add timing for block availability (#5510)
michaelsproul Apr 23, 2024
05fbbdd
Electra: Add Preset, Constants, & Config (#5606)
ethDreamer Apr 23, 2024
76460ba
Only `portable` builds (docker) (#5614)
antondlr Apr 23, 2024
4cad1fc
Add missing lcli targets in makefile (#5633)
antondlr Apr 23, 2024
6196289
In-memory tree states (#5533)
michaelsproul Apr 24, 2024
c4a2bcb
Yaml rust2 (#5635)
realbigsean Apr 24, 2024
1eaaa4a
Bump jobserver and fix non-portable builds (#5641)
michaelsproul Apr 24, 2024
c38b05d
Drop lookup type trait for a simple arg (#5620)
dapplion Apr 24, 2024
4a48d7b
Encode Execution Engine Client Version In Graffiti (#5290)
ethDreamer Apr 24, 2024
dd340ee
Fix execution integration tests (#5647)
realbigsean Apr 25, 2024
3203456
Add electra presets to beacon API (#5630)
realbigsean Apr 25, 2024
13f94ef
Rename `Merge` to `Bellatrix` (#5601)
macladson Apr 25, 2024
a1141ea
Deterministic block generation for tests (#5654)
dapplion Apr 26, 2024
000a4fd
Electra other containers (#5652)
realbigsean Apr 26, 2024
8b24880
Add more electra helpers (#5653)
pawanjay176 Apr 27, 2024
40d4126
Ignore gossip blob already imported (#5656)
dapplion Apr 29, 2024
c33edc8
Beta compiler fix (#5659)
realbigsean Apr 29, 2024
c8ffafb
fix(validator_client): raise soft fd limit (#4796)
rkrasiuk Apr 29, 2024
d3bf9a8
Proposer and attester slashing sse events (#5327)
eserilev Apr 30, 2024
d0602c3
pin macos release runner to `macos-13` (#5665)
antondlr Apr 30, 2024
63fad7e
Remove snapshot cache related code (#5661)
jimmygchen Apr 30, 2024
aea02c6
Uncomment self_hosted_runner after PR Merge #5137 (#5291)
Arvmor Apr 30, 2024
196d9fd
Only `portable` builds (binaries) (#5615)
antondlr Apr 30, 2024
ce66582
Merge parent and current sync lookups (#5655)
dapplion Apr 30, 2024
beaa586
 delete spammy log (#5672)
realbigsean Apr 30, 2024
b9655b6
Ensure block only range requests don't fail on download (#5675)
realbigsean May 1, 2024
59753f5
Improve ENR updates (#5483)
AgeManning May 1, 2024
01e4e35
Check da_checker before doing a block lookup request (#5681)
dapplion May 1, 2024
6725837
Update Cargo.lock (#5670)
jxs May 2, 2024
ee974db
Add metric for current epoch total balance (#5688)
michaelsproul May 2, 2024
d3d429f
Improve logging and metrics for block publication (#5699)
michaelsproul May 3, 2024
1af3f0f
Make modified helpers in electra fork aware (#5698)
pawanjay176 May 3, 2024
fe20ef9
One less listen address race (#5718)
michaelsproul May 6, 2024
da9d386
web3Signer: set header "Accept: application/json" as we expect json i…
lrusak May 6, 2024
436d54e
Consistent logging of full root in lookup debug logs (#5700)
dapplion May 6, 2024
b87c36a
Report RPC Errors to the application on peer disconnections (#5680)
dapplion May 6, 2024
5135a77
Move sync lookup trait function to its caller (#5704)
dapplion May 6, 2024
6d792b4
Revise contributors guide (#5720)
jimmygchen May 7, 2024
93e0649
Notify lookup sync of gossip processing results (#5722)
dapplion May 13, 2024
f37ffe4
Do not request current child lookup peers (#5724)
dapplion May 13, 2024
ce66ab3
Enforce sync lookup receives a single result (#5777)
dapplion May 14, 2024
683d9df
Don't request block components until having block (#5774)
dapplion May 14, 2024
6f45ad4
Log stuck lookups (#5778)
dapplion May 14, 2024
6636167
Log block import source (#5738)
eserilev May 15, 2024
1d61605
use electra feature in notifier completeness check (#5786)
realbigsean May 15, 2024
0f49951
Skip CI's `test-suite` when the `skip-ci` label is present (#5790)
antondlr May 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
113 changes: 59 additions & 54 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ concurrency:
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
IMAGE_NAME: ${{ github.repository_owner}}/lighthouse
LCLI_IMAGE_NAME: ${{ github.repository_owner }}/lcli
# Enable self-hosted runners for the sigp repo only.
SELF_HOSTED_RUNNERS: ${{ github.repository == 'sigp/lighthouse' }}

Expand Down Expand Up @@ -49,27 +47,22 @@ jobs:
VERSION: ${{ env.VERSION }}
VERSION_SUFFIX: ${{ env.VERSION_SUFFIX }}
build-docker-single-arch:
name: build-docker-${{ matrix.binary }}${{ matrix.features.version_suffix }}
name: build-docker-${{ matrix.binary }}-${{ matrix.cpu_arch }}${{ matrix.features.version_suffix }}
# Use self-hosted runners only on the sigp repo.
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "release"]') || 'ubuntu-22.04' }}
strategy:
matrix:
binary: [aarch64,
aarch64-portable,
x86_64,
x86_64-portable]
features: [
{version_suffix: "", env: "gnosis,slasher-lmdb,slasher-mdbx,jemalloc"},
{version_suffix: "-dev", env: "jemalloc,spec-minimal"}
]
binary: [lighthouse,
lcli]
cpu_arch: [aarch64,
x86_64]
include:
- profile: maxperf

needs: [extract-version]
env:
VERSION: ${{ needs.extract-version.outputs.VERSION }}
VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }}
FEATURE_SUFFIX: ${{ matrix.features.version_suffix }}
steps:
- uses: actions/checkout@v4
- name: Update Rust
Expand All @@ -78,27 +71,40 @@ jobs:
- name: Dockerhub login
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Cross build Lighthouse binary

- name: Sets env vars for Lighthouse
if: startsWith(matrix.binary, 'lighthouse')
run: |
echo "CROSS_FEATURES=gnosis,spec-minimal,slasher-lmdb,jemalloc" >> $GITHUB_ENV

- name: Set `make` command for lighthouse
if: startsWith(matrix.binary, 'lighthouse')
run: |
echo "MAKE_CMD=build-${{ matrix.cpu_arch }}-portable" >> $GITHUB_ENV

- name: Set `make` command for lcli
if: startsWith(matrix.binary, 'lcli')
run: |
echo "MAKE_CMD=build-lcli-${{ matrix.cpu_arch }}" >> $GITHUB_ENV

- name: Cross build binaries
run: |
cargo install cross
env CROSS_PROFILE=${{ matrix.profile }} CROSS_FEATURES=${{ matrix.features.env }} make build-${{ matrix.binary }}
env CROSS_PROFILE=${{ matrix.profile }} CROSS_FEATURES=${{ env.CROSS_FEATURES }} make ${{ env.MAKE_CMD }}

- name: Make bin dir
run: mkdir ./bin
- name: Move cross-built binary into Docker scope (if ARM)
if: startsWith(matrix.binary, 'aarch64')
run: mv ./target/aarch64-unknown-linux-gnu/${{ matrix.profile }}/lighthouse ./bin
- name: Move cross-built binary into Docker scope (if x86_64)
if: startsWith(matrix.binary, 'x86_64')
run: mv ./target/x86_64-unknown-linux-gnu/${{ matrix.profile }}/lighthouse ./bin

- name: Move cross-built binary into Docker scope
run: mv ./target/${{ matrix.cpu_arch }}-unknown-linux-gnu/${{ matrix.profile }}/${{ matrix.binary }} ./bin

- name: Map aarch64 to arm64 short arch
if: startsWith(matrix.binary, 'aarch64')
if: startsWith(matrix.cpu_arch, 'aarch64')
run: echo "SHORT_ARCH=arm64" >> $GITHUB_ENV

- name: Map x86_64 to amd64 short arch
if: startsWith(matrix.binary, 'x86_64')
if: startsWith(matrix.cpu_arch, 'x86_64')
run: echo "SHORT_ARCH=amd64" >> $GITHUB_ENV;
- name: Set modernity suffix
if: endsWith(matrix.binary, '-portable') != true
run: echo "MODERNITY_SUFFIX=-modern" >> $GITHUB_ENV;

- name: Install QEMU
if: env.SELF_HOSTED_RUNNERS == 'false'
Expand All @@ -108,22 +114,41 @@ jobs:
if: env.SELF_HOSTED_RUNNERS == 'false'
uses: docker/setup-buildx-action@v3

- name: Build and push
- name: Build and push (Lighthouse)
if: startsWith(matrix.binary, 'lighthouse')
uses: docker/build-push-action@v5
with:
file: ./Dockerfile.cross
context: .
platforms: linux/${{ env.SHORT_ARCH }}
push: true
tags: ${{ env.IMAGE_NAME }}:${{ env.VERSION }}-${{ env.SHORT_ARCH }}${{ env.VERSION_SUFFIX }}${{ env.MODERNITY_SUFFIX }}${{ env.FEATURE_SUFFIX }}
tags: |
${{ github.repository_owner}}/${{ matrix.binary }}:${{ env.VERSION }}-${{ env.SHORT_ARCH }}${{ env.VERSION_SUFFIX }}
${{ github.repository_owner}}/${{ matrix.binary }}:${{ env.VERSION }}-${{ env.SHORT_ARCH }}${{ env.VERSION_SUFFIX }}-dev
${{ github.repository_owner}}/${{ matrix.binary }}:${{ env.VERSION }}-${{ env.SHORT_ARCH }}${{ env.VERSION_SUFFIX }}-modern
${{ github.repository_owner}}/${{ matrix.binary }}:${{ env.VERSION }}-${{ env.SHORT_ARCH }}${{ env.VERSION_SUFFIX }}-modern-dev

- name: Build and push (lcli)
if: startsWith(matrix.binary, 'lcli')
uses: docker/build-push-action@v5
with:
file: ./lcli/Dockerfile.cross
context: .
platforms: linux/${{ env.SHORT_ARCH }}
push: true

tags: |
${{ github.repository_owner}}/${{ matrix.binary }}:${{ env.VERSION }}-${{ env.SHORT_ARCH }}${{ env.VERSION_SUFFIX }}


build-docker-multiarch:
name: build-docker-multiarch${{ matrix.modernity }}
name: build-docker-${{ matrix.binary }}-multiarch
runs-on: ubuntu-22.04
needs: [build-docker-single-arch, extract-version]
strategy:
matrix:
modernity: ["", "-modern"]
binary: [lighthouse,
lcli]
needs: [build-docker-single-arch, extract-version]
env:
VERSION: ${{ needs.extract-version.outputs.VERSION }}
VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }}
Expand All @@ -135,29 +160,9 @@ jobs:
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin

- name: Create and push multiarch manifest
- name: Create and push multiarch manifests
run: |
docker buildx imagetools create -t ${IMAGE_NAME}:${VERSION}${VERSION_SUFFIX}${{ matrix.modernity }} \
${IMAGE_NAME}:${VERSION}-arm64${VERSION_SUFFIX}${{ matrix.modernity }} \
${IMAGE_NAME}:${VERSION}-amd64${VERSION_SUFFIX}${{ matrix.modernity }};
docker buildx imagetools create -t ${{ github.repository_owner}}/${{ matrix.binary }}:${VERSION}${VERSION_SUFFIX} \
${{ github.repository_owner}}/${{ matrix.binary }}:${VERSION}-arm64${VERSION_SUFFIX} \
${{ github.repository_owner}}/${{ matrix.binary }}:${VERSION}-amd64${VERSION_SUFFIX};

build-docker-lcli:
runs-on: ubuntu-22.04
needs: [extract-version]
env:
VERSION: ${{ needs.extract-version.outputs.VERSION }}
VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }}
steps:
- uses: actions/checkout@v4
- name: Dockerhub login
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Build lcli and push
uses: docker/build-push-action@v5
with:
build-args: |
FEATURES=portable
context: .
push: true
file: ./lcli/Dockerfile
tags: ${{ env.LCLI_IMAGE_NAME }}:${{ env.VERSION }}${{ env.VERSION_SUFFIX }}
79 changes: 30 additions & 49 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,38 +31,22 @@ jobs:
strategy:
matrix:
arch: [aarch64-unknown-linux-gnu,
aarch64-unknown-linux-gnu-portable,
x86_64-unknown-linux-gnu,
x86_64-unknown-linux-gnu-portable,
x86_64-apple-darwin,
x86_64-apple-darwin-portable,
x86_64-windows,
x86_64-windows-portable]
x86_64-windows]
include:
- arch: aarch64-unknown-linux-gnu
runner: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "release", "large"]') || 'ubuntu-latest' }}
profile: maxperf
- arch: aarch64-unknown-linux-gnu-portable
runner: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "release", "large"]') || 'ubuntu-latest' }}
profile: maxperf
- arch: x86_64-unknown-linux-gnu
runner: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "release", "large"]') || 'ubuntu-latest' }}
profile: maxperf
- arch: x86_64-unknown-linux-gnu-portable
runner: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "release", "large"]') || 'ubuntu-latest' }}
profile: maxperf
- arch: x86_64-apple-darwin
runner: macos-latest
profile: maxperf
- arch: x86_64-apple-darwin-portable
runner: macos-latest
runner: macos-13
profile: maxperf
- arch: x86_64-windows
runner: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "windows", "release"]') || 'windows-2019' }}
profile: maxperf
- arch: x86_64-windows-portable
runner: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "windows", "release"]') || 'windows-2019' }}
profile: maxperf

runs-on: ${{ matrix.runner }}
needs: extract-version
Expand Down Expand Up @@ -90,53 +74,29 @@ jobs:
# Builds
# ==============================

- name: Build Lighthouse for aarch64-unknown-linux-gnu-portable
if: matrix.arch == 'aarch64-unknown-linux-gnu-portable'
run: |
cargo install cross
env CROSS_PROFILE=${{ matrix.profile }} make build-aarch64-portable

- name: Build Lighthouse for aarch64-unknown-linux-gnu
if: matrix.arch == 'aarch64-unknown-linux-gnu'
run: |
cargo install cross
env CROSS_PROFILE=${{ matrix.profile }} make build-aarch64

- name: Build Lighthouse for x86_64-unknown-linux-gnu-portable
if: matrix.arch == 'x86_64-unknown-linux-gnu-portable'
run: |
cargo install cross
env CROSS_PROFILE=${{ matrix.profile }} make build-x86_64-portable
env CROSS_PROFILE=${{ matrix.profile }} make build-aarch64-portable

- name: Build Lighthouse for x86_64-unknown-linux-gnu
if: matrix.arch == 'x86_64-unknown-linux-gnu'
run: |
cargo install cross
env CROSS_PROFILE=${{ matrix.profile }} make build-x86_64

- name: Move cross-compiled binary
if: startsWith(matrix.arch, 'aarch64')
run: mv target/aarch64-unknown-linux-gnu/${{ matrix.profile }}/lighthouse ~/.cargo/bin/lighthouse
env CROSS_PROFILE=${{ matrix.profile }} make build-x86_64-portable

- name: Move cross-compiled binary
if: startsWith(matrix.arch, 'x86_64-unknown-linux-gnu')
run: mv target/x86_64-unknown-linux-gnu/${{ matrix.profile }}/lighthouse ~/.cargo/bin/lighthouse

- name: Build Lighthouse for x86_64-apple-darwin portable
if: matrix.arch == 'x86_64-apple-darwin-portable'
run: cargo install --path lighthouse --force --locked --features portable,gnosis --profile ${{ matrix.profile }}
if: contains(matrix.arch, 'unknown-linux-gnu')
run: mv target/${{ matrix.arch }}/${{ matrix.profile }}/lighthouse ~/.cargo/bin/lighthouse

- name: Build Lighthouse for x86_64-apple-darwin modern
- name: Build Lighthouse for x86_64-apple-darwin
if: matrix.arch == 'x86_64-apple-darwin'
run: cargo install --path lighthouse --force --locked --features modern,gnosis --profile ${{ matrix.profile }}

- name: Build Lighthouse for Windows portable
if: matrix.arch == 'x86_64-windows-portable'
run: cargo install --path lighthouse --force --locked --features portable,gnosis --profile ${{ matrix.profile }}

- name: Build Lighthouse for Windows modern
- name: Build Lighthouse for Windows
if: matrix.arch == 'x86_64-windows'
run: cargo install --path lighthouse --force --locked --features modern,gnosis --profile ${{ matrix.profile }}
run: cargo install --path lighthouse --force --locked --features portable,gnosis --profile ${{ matrix.profile }}

- name: Configure GPG and create artifacts
if: startsWith(matrix.arch, 'x86_64-windows') != true
Expand All @@ -151,6 +111,11 @@ jobs:
cd artifacts
tar -czf lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz lighthouse
echo "$GPG_PASSPHRASE" | gpg --passphrase-fd 0 --pinentry-mode loopback --batch -ab lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz
for ext in "tar.gz" "tar.gz.asc";\
do for f in *.$ext;\
do cp $f "../${f%.$ext}-portable.$ext";\
done;\
done
mv *tar.gz* ..

- name: Configure GPG and create artifacts Windows
Expand Down Expand Up @@ -179,13 +144,29 @@ jobs:
path: lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz
compression-level: 0

- name: Upload artifact (copy)
if: startsWith(matrix.arch, 'x86_64-windows') != true
uses: actions/upload-artifact@v4
with:
name: lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}-portable.tar.gz
path: lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}-portable.tar.gz
compression-level: 0

- name: Upload signature
uses: actions/upload-artifact@v4
with:
name: lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz.asc
path: lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz.asc
compression-level: 0

- name: Upload signature (copy)
if: startsWith(matrix.arch, 'x86_64-windows') != true
uses: actions/upload-artifact@v4
with:
name: lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}-portable.tar.gz.asc
path: lighthouse-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}-portable.tar.gz.asc
compression-level: 0

draft-release:
name: Draft Release
needs: [build, extract-version]
Expand Down
Loading
Loading