Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,9 @@ jobs:
run: |
make chain
make contracts
# epoch is 200, 400, 500, 1000
# Since we want the previous epoch to be before HF we wait for 800 block (0.75sec * 800)
sleep 600
# Wait for Maxwell HF to be enabled (0.75sec * 2000)
sleep 1500
make relayer
make test
- name: integration-test
run: go test -v ./tests -tags dev -ldflags="-X github.com/datachainlab/ibc-parlia-relay/module/constant.blocksPerEpoch=20"
run: go test -v ./tests
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
![CI](https://github.com/datachainlab/ibc-parlia-relay/workflows/CI/badge.svg?branch=main)

## Supported Versions
- [yui-relayer v0.5.11](https://github.com/hyperledger-labs/yui-relayer/releases/tag/v0.5.11)
- [ethereum-ibc-relay-chain v0.3.17](https://github.com/datachainlab/ethereum-ibc-relay-chain/releases/tag/v0.3.7)
- [yui-relayer v0.5.16](https://github.com/hyperledger-labs/yui-relayer/releases/tag/v0.5.16)
- [ethereum-ibc-relay-chain v0.3.17](https://github.com/datachainlab/ethereum-ibc-relay-chain/releases/tag/v0.3.17)
- [parlia-elc v0.3.10](https://github.com/datachainlab/parlia-elc/releases/tag/v0.3.10)

## Setup Relayer
Expand Down
3 changes: 2 additions & 1 deletion module/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ import (
)

// Maximum header interval to be submitted to LCP
const skip = 100
// Supports after Maxwell HF only
const skip = 1000

type queryVerifiableNeighboringEpochHeaderFn = func(context.Context, uint64, uint64) (core.Header, error)

Expand Down
79 changes: 40 additions & 39 deletions module/setup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,15 @@ func (ts *SetupTestSuite) SetupTest() {
ts.Require().NoError(err)
}

var forkSpecsAfterMaxwell = []*ForkSpec{
{
// Must Set Milli timestamp
HeightOrTimestamp: &ForkSpec_Height{Height: 0},
AdditionalHeaderItemCount: 1,
EpochLength: 1000,
},
}

func (ts *SetupTestSuite) TestSuccess_setupHeadersForUpdate_neighboringEpoch() {

verify := func(trustedHeight, nextHeight uint64, expected int) {
Expand Down Expand Up @@ -54,7 +63,7 @@ func (ts *SetupTestSuite) TestSuccess_setupHeadersForUpdate_neighboringEpoch() {
}, nil
}

targets, err := setupHeadersForUpdate(context.Background(), neighborFn, headerFn, clientStateLatestHeight, latestFinalizedHeader, clienttypes.NewHeight(0, 100000), GetForkParameters(Localnet))
targets, err := setupHeadersForUpdate(context.Background(), neighborFn, headerFn, clientStateLatestHeight, latestFinalizedHeader, clienttypes.NewHeight(0, 100000), forkSpecsAfterMaxwell)
ts.Require().NoError(err)
ts.Require().Len(targets, expected)
for i, h := range targets {
Expand Down Expand Up @@ -114,7 +123,7 @@ func (ts *SetupTestSuite) TestSuccess_setupHeadersForUpdate_allEmpty() {
}
targets, err := setupHeadersForUpdate(context.Background(), neighboringEpochFn, headerFn, clientStateLatestHeight, latestFinalizedHeader,
clienttypes.NewHeight(0,
1000000), GetForkParameters(Localnet))
1000000), forkSpecsAfterMaxwell)
ts.Require().NoError(err)
ts.Require().Len(targets, expected)
}
Expand Down Expand Up @@ -151,19 +160,11 @@ func (ts *SetupTestSuite) TestSuccess_setupHeadersForUpdate_withHFBoundary() {
}

hftime := now.Add(time.Duration(trustedHeight+(nextHeight-trustedHeight)/2) * time.Second).Unix()
forkSpecs := []*ForkSpec{
{
// Must Set Milli timestamp
HeightOrTimestamp: &ForkSpec_Height{Height: 0},
AdditionalHeaderItemCount: 1,
EpochLength: 200,
},
{
HeightOrTimestamp: &ForkSpec_Timestamp{Timestamp: uint64(hftime * 1000)},
AdditionalHeaderItemCount: 1,
EpochLength: 500,
},
}
forkSpecs := append(forkSpecsAfterMaxwell, &ForkSpec{
HeightOrTimestamp: &ForkSpec_Timestamp{Timestamp: uint64(hftime * 1000)},
AdditionalHeaderItemCount: 1,
EpochLength: 2000,
})
clientStateLatestHeight := clienttypes.NewHeight(0, trustedHeight)
target, err := newETHHeader(&types2.Header{
Number: big.NewInt(int64(nextHeight)),
Expand Down Expand Up @@ -234,51 +235,51 @@ func (ts *SetupTestSuite) Test_makeSubmittingHeights() {
rq.Len(makeSubmittingHeights(10, 1, 11, &msec, 9), 1)
rq.Len(makeSubmittingHeights(10, 9, 11, &msec, 9), 0)
rq.Equal(
[]uint64{99, 100, 200, 300, 400, 500},
makeSubmittingHeights(501, 0, 100, &msec, 99),
[]uint64{skip - 1, skip, 2 * skip, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, &msec, skip-1),
)
rq.Equal(
[]uint64{100, 200, 300, 400, 500},
makeSubmittingHeights(501, 99, 100, &msec, 99),
[]uint64{skip, 2 * skip, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, skip-1, skip, &msec, skip-1),
)
rq.Equal(
[]uint64{100, 200, 300, 400, 500},
makeSubmittingHeights(501, 0, 100, &msec, 100),
[]uint64{skip, 2 * skip, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, &msec, skip),
)
rq.Equal(
[]uint64{100, 101, 200, 300, 400, 500},
makeSubmittingHeights(501, 0, 100, &msec, 101),
[]uint64{skip, skip + 1, 2 * skip, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, &msec, skip+1),
)
rq.Equal(
[]uint64{100, 200, 300, 400, 500},
makeSubmittingHeights(501, 0, 100, nil, 101),
[]uint64{skip, 2 * skip, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, nil, skip+1),
)
rq.Equal(
[]uint64{100, 200, 201, 300, 400, 500},
makeSubmittingHeights(501, 0, 100, &msec, 201),
[]uint64{skip, 2 * skip, 2*skip + 1, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, &msec, 2*skip+1),
)
rq.Equal(
[]uint64{100, 200, 300, 301, 400, 500},
makeSubmittingHeights(501, 0, 100, &msec, 301),
[]uint64{skip, 2 * skip, 3 * skip, 3*skip + 1, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, &msec, 3*skip+1),
)
rq.Equal(
[]uint64{100, 200, 300, 400, 401, 500},
makeSubmittingHeights(501, 0, 100, &msec, 401),
[]uint64{skip, 2 * skip, 3 * skip, 4 * skip, 4*skip + 1, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, &msec, 4*skip+1),
)
rq.Equal(
[]uint64{100, 200, 300, 400, 500},
makeSubmittingHeights(501, 0, 100, nil, 401),
[]uint64{skip, 2 * skip, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, nil, 4*skip+1),
)
rq.Equal(
[]uint64{100, 200, 300, 400, 500},
makeSubmittingHeights(501, 0, 100, &msec, 501),
[]uint64{skip, 2 * skip, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+1, 0, skip, &msec, 5*skip+1),
)
rq.Equal(
[]uint64{100, 200, 300, 400, 500, 501},
makeSubmittingHeights(502, 0, 100, &msec, 501),
[]uint64{skip, 2 * skip, 3 * skip, 4 * skip, 5 * skip, 5*skip + 1},
makeSubmittingHeights(5*skip+2, 0, skip, &msec, 5*skip+1),
)
rq.Equal(
[]uint64{100, 200, 300, 400, 500},
makeSubmittingHeights(502, 0, 100, nil, 501),
[]uint64{skip, 2 * skip, 3 * skip, 4 * skip, 5 * skip},
makeSubmittingHeights(5*skip+2, 0, skip, nil, 5*skip+1),
)
}