chore: extract v1 random beacon to keep-core-v1 repo#3998
Open
piotr-roslaniec wants to merge 3 commits into
Open
chore: extract v1 random beacon to keep-core-v1 repo#3998piotr-roslaniec wants to merge 3 commits into
piotr-roslaniec wants to merge 3 commits into
Conversation
Move docs-v1/ and solidity-v1/ into a new dedicated repository threshold-network/keep-core-v1 to reduce this repo's footprint and remove dead-weight CI paths, CODEOWNERS noise, and pre-commit hooks that target inert legacy code. - Remove docs-v1/ and solidity-v1/ trees. - Remove scripts/install-v1.sh (only set up v1 truffle migrations). - Remove crytic-config.json (only pointed at solidity-v1). - Preserve docs-v1/development/go-guidelines.adoc under docs/development/ since it documents Go code that still lives here. - Strip v1 entries from CODEOWNERS, .dockerignore, paths-ignore / path-filter in client workflow, and v1-specific pre-commit hooks. - Drop the v1 npm install from scripts/macos-setup.sh, keep the generic npm install (v2 contracts still need it). - Repoint narrative links in README.adoc, docs/retired-components.md, docs/development/README.adoc and solidity/random-beacon/README.adoc at the new keep-core-v1 repository. The historical solc-input deployment artifacts under solidity/random-beacon/deployments/ and solidity/ecdsa/deployments/ still reference 'solidity-v1' inside frozen compiler metadata; those are immutable build artifacts and are intentionally left untouched. Likewise, solidity/random-beacon/contracts/libraries/BytesLib.sol keeps a permalink-by-commit-SHA pointer to the original v1 source in keep-network/keep-core; that link remains valid.
Second-pass cleanup of references missed in the first sweep: - .dockerignore: remove the `crytic-config.json` exclusion (the file was deleted in the previous commit) and the dead `!pkg/chain/gen` allowlist (the directory does not exist anywhere in the tree; the current Go bindings live under pkg/chain/ethereum/*/gen/). - docs/retired-components.md: restore the original v1-prefixed paths as historical references. The retired files (TokenStakingEscrow.sol, withdraw-old-rewards.js, dashboard/) were already removed in earlier PRs, so they do not exist in the current keep-core-v1 tree either -- only the v1 history records them. The previous wording implied they were present in keep-core-v1, which was misleading.
Ropsten was deprecated by the Ethereum Foundation in Q4 2022. The associated v1 testnet contract artifacts, kube manifests, GCP cloud function, helper scripts, and Terraform resources have been non-functional ever since. Removing them now alongside the docs-v1/ and solidity-v1/ extraction. Removed: - infrastructure/eth-networks/keep-test/ropsten/ (3.1 MB of v1 KeepToken / TokenStaking / KeepRandomBeaconOperator deployment JSONs plus per-participant client configs and keyfiles for the Ropsten testnet beacon). - infrastructure/eth-networks/scripts/ (stake-accounts.js, fetch-contract-data.sh, prepare-participant-bundles.sh and the truffle/hdwallet-provider package-lock.json that supported them; create-eth-accounts.sh was only useful in this Ropsten context). - infrastructure/gcp/keep-test/google-functions/keep-faucet/ (KEEP token grant faucet Cloud Function targeting Ropsten via the long-deprecated nodejs10 runtime). - 11 Kubernetes manifests under infrastructure/kube/keep-dev/ for eth-miner-ropsten and eth-tx-ropsten (statefulsets, services, storage class and config map). - Ropsten load balancer Terraform resources, variables and outputs under infrastructure/terraform/keep-dev/. - .pre-commit-config.yaml: dropped the lint-faucet-js hook that targeted the removed faucet. Out of scope (left for separate review): - infrastructure/eth-networks/private-testnet/ (Görli-era v2 bundle generator; Görli is also deprecated but the tree is v2-aware). - solidity/random-beacon/.hardhat/networks_TEMPLATE.ts still includes a Ropsten entry in a v2 hardhat config template.
This was referenced Jun 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docs-v1/andsolidity-v1/out of this repo to the new dedicatedarchive
threshold-network/keep-core-v1(history preserved via
git filter-repo,solidity-v1/renamed tosolidity/anddocs-v1/renamed todocs/inside the archive).CODEOWNERS.
Function faucet, deployment artifacts, helper scripts, Terraform LB
resources). Ropsten was deprecated by the Ethereum Foundation in Q4 2022
and these surfaces have been non-functional ever since; they are tied to
the v1 KEEP-token operator flow and have no v2 counterpart.
Net diff: ~+35 / ~−190,000 across ~320 file changes.
How the new repo was produced
Result: 595 commits and 33 tags preserved in the new repo. Blame/log
inside the moved paths remain intact (SHAs differ due to the rewrite).
What changed in this repo
Removed — v1 source trees:
docs-v1/(1.2 MB legacy v1 specs / RFCs)solidity-v1/(3.7 MB legacy v1 contracts)scripts/install-v1.sh(only set up v1 truffle migrations)crytic-config.json(only contained{\"cwd\": \"solidity-v1\"})Removed — dead Ropsten v1 infrastructure:
infrastructure/eth-networks/keep-test/ropsten/(3.1 MB of v1KeepToken/TokenStaking/KeepRandomBeaconOperatordeploymentJSONs plus 8 participant configs and keyfiles)
infrastructure/eth-networks/scripts/(stake-accounts.js,fetch-contract-data.sh,prepare-participant-bundles.sh,create-eth-accounts.sh, and theirpackage.json/package-lock.jsonpulling in
@truffle/hdwallet-provider)infrastructure/gcp/keep-test/google-functions/keep-faucet/(RopstenKEEP-token grant faucet Cloud Function targeting the
long-deprecated
nodejs10runtime)infrastructure/kube/keep-dev/(eth-miner-ropsten-*,eth-tx-ropsten-*,eth-network-ropsten-configmap)infrastructure/terraform/keep-dev/Preserved
docs-v1/development/go-guidelines.adocmoved todocs/development/go-guidelines.adoc-- it documents Go style forcode that still lives in this repo, not in v1.
Updated references
CODEOWNERS-- dropped 33/solidity-v1/...patterns..github/workflows/client.yml-- removed v1 entries frompaths-ignoreand the path-filter expression..pre-commit-config.yaml-- removedlint-js-v1,lint-sol-v1,format-dashboard, andlint-faucet-jshooks.scripts/macos-setup.sh-- dropped thecd ../solidity-v1 && npm installstep, kept generic
brew install npm(v2 contracts still need it)..dockerignore-- droppedsolidity-v1/, the stalecrytic-config.jsonexclusion (file deleted), and the dead
!pkg/chain/genallowlist (pathdoesn't exist; v2 bindings live under
pkg/chain/ethereum/*/gen/).README.adoc-- rewrote the "Moving to a new random beacon" and"dApp Developers" sections and the directory-structure tree to point
at
threshold-network/keep-core-v1; renumbered tree callouts.docs/retired-components.md-- reworded to clarify that retired files(TokenStakingEscrow.sol, withdraw-old-rewards.js, dashboard/) appear
only in the history of
keep-core-v1, not in its current tree.docs/development/README.adoc-- link now targets the local copy ofgo-guidelines.adoc.solidity/random-beacon/README.adoc-- "Prior Work" link points atthe new repo.
Intentionally left untouched
solidity/random-beacon/contracts/libraries/BytesLib.solkeeps apermalink-by-commit-SHA pointer to the original v1 BytesLib in
keep-network/keep-core. That URL stays valid forever.solidity/random-beacon/deployments/**andsolidity/ecdsa/deployments/**JSONs contain embedded solc metadatamentioning
solidity-v1paths -- immutable deployment artifacts.github.com/keep-network/keep-core(go.mod, all Goimports, Dockerfile workdir, GitHub Actions workdir): the GitHub-org
rename doesn't force a module-path change and that's a separate
decision out of scope for this PR.
@keep-network/keep-corereferenced by v2 yarn.lockfiles -- registry name can't be renamed without republishing.
keep-network/keep-core/...URLs in badges, forkinstructions, etc. -- they predate the org migration and are out of
scope for this PR.
Out-of-scope follow-ups (NOT addressed here)
infrastructure/eth-networks/private-testnet/is a Görli-era v2Staking-Provider bundle generator. Görli was also deprecated in
early 2024, but the tree is v2-aware so deleting it belongs to a
separate testnet-cleanup PR.
solidity/random-beacon/.hardhat/networks_TEMPLATE.tsstill lists aRopsten entry inside a v2 hardhat config template.
Test plan
pre-commit run --all-filespasses (v1/faucet hooks removed; v2 +remaining hooks unchanged).
Clientworkflow path-filter still triggers correctly on a realGo-touching PR and skips on docs/solidity-only PRs.
.dockerignorecorrectness, dead!pkg/chain/genallowlist removed).README.adocAsciiDoc renders cleanly (tree callouts renumbered).terraform planagainstinfrastructure/terraform/keep-dev/showsa delete of the two Ropsten
google_compute_addressresources andno other unexpected drift.