Skip to content

Commit

Permalink
feat: brioche configuation for devnet (#108)
Browse files Browse the repository at this point in the history
* feat: add testable private chain for brioche

* fix: apply devnet config

* ci: add ci for devnet

* fix: remove local test
  • Loading branch information
egonspace authored Jun 21, 2024
1 parent 8cfed0d commit d9615ef
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 1 deletion.
60 changes: 60 additions & 0 deletions .github/workflows/devnet-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: devnet-ci

on:
pull_request:
branches:
- devnet

jobs:
build_test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.19

- name: Build Go-WEMIX
run: make gwemix.tar.gz
- name: Check Build
run: ls -al build/gwemix.tar.gz

lint_test:
strategy:
fail-fast: false
matrix:
version: [1.17, 1.18, 1.19]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.version }}

- name: Check Lint
run: make lint

unit_test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.19

- name: Check golang Test Cases
run: |
unset ANDROID_HOME
make test
7 changes: 6 additions & 1 deletion core/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,10 @@ func SetupGenesisBlockWithOverride(db ethdb.Database, genesis *Genesis, override
// chain config as that would be AllProtocolChanges (applying any new fork
// on top of an existing private network genesis block). In that case, only
// apply the overrides.
if genesis == nil && !(stored == params.MainnetGenesisHash || stored == params.WemixMainnetGenesisHash) {
if genesis == nil &&
!(stored == params.MainnetGenesisHash ||
stored == params.WemixMainnetGenesisHash ||
stored == params.DevnetGenesisHash) {
newcfg = storedcfg
if overrideArrowGlacier != nil {
newcfg.ArrowGlacierBlock = overrideArrowGlacier
Expand All @@ -327,6 +330,8 @@ func SetupGenesisBlockWithOverride(db ethdb.Database, genesis *Genesis, override

func (g *Genesis) configOrDefault(ghash common.Hash) *params.ChainConfig {
switch {
case ghash == params.DevnetGenesisHash:
return params.WemixDevnetChainConfig
case ghash == params.WemixMainnetGenesisHash:
return params.WemixMainnetChainConfig
case ghash == params.WemixTestnetGenesisHash:
Expand Down
30 changes: 30 additions & 0 deletions params/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ var (
RinkebyGenesisHash = common.HexToHash("0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177")
GoerliGenesisHash = common.HexToHash("0xbf7e331f7f7c1dd2e05159666b3bf8bc7a8a3a9eb1d518969eab529dd9b88c1a")
KilnGenesisHash = common.HexToHash("0x51c7fe41be669f69c45c33a56982cbde405313342d9e2b00d7c91a7b284dd4f8")
DevnetGenesisHash = common.HexToHash("0x45ef4029e520fff2763b31821da9bf761ca73f243bb8e912f4d3004ce3598151")
)

// TrustedCheckpoints associates each known checkpoint with the genesis hash of
Expand Down Expand Up @@ -201,6 +202,35 @@ var (
},
}

WemixDevnetChainConfig = &ChainConfig{
ChainID: big.NewInt(1113),
HomesteadBlock: big.NewInt(0),
DAOForkBlock: big.NewInt(0),
DAOForkSupport: true,
EIP150Block: big.NewInt(0),
EIP155Block: big.NewInt(0),
EIP158Block: big.NewInt(0),
ByzantiumBlock: big.NewInt(0),
ConstantinopleBlock: big.NewInt(0),
PetersburgBlock: big.NewInt(0),
IstanbulBlock: big.NewInt(0),
MuirGlacierBlock: big.NewInt(0),
BerlinBlock: big.NewInt(0),
LondonBlock: big.NewInt(0),
PangyoBlock: big.NewInt(0),
ApplepieBlock: big.NewInt(0),
BriocheBlock: big.NewInt(607_147), // target date: 2024-05-29 16:00:00 (GMT+09)
Ethash: new(EthashConfig),
Brioche: &BriocheConfig{
BlockReward: big.NewInt(1e18),
FirstHalvingBlock: big.NewInt(607_147),
HalvingPeriod: big.NewInt(63_115_200),
FinishRewardBlock: big.NewInt(2_412_358_747), // target date: 2100-11-01 11:00:00 (GMT+09)
HalvingTimes: 16,
HalvingRate: 50,
},
}

// SepoliaChainConfig contains the chain parameters to run a node on the Sepolia test network.
SepoliaChainConfig = &ChainConfig{
ChainID: big.NewInt(11155111),
Expand Down

0 comments on commit d9615ef

Please sign in to comment.