Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
c04a80c9
Unverified
Commit
c04a80c9
authored
Feb 27, 2023
by
mergify[bot]
Committed by
GitHub
Feb 27, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into dependabot/go_modules/proxyd/golang.org/x/sys-0.1.0
parents
e81be55e
5d194112
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
106 additions
and
87 deletions
+106
-87
config.yml
.circleci/config.yml
+62
-72
README.md
README.md
+1
-0
Dockerfile
op-batcher/Dockerfile
+3
-1
Dockerfile
op-node/Dockerfile
+3
-1
Dockerfile
op-proposer/Dockerfile
+3
-1
ci-docker-tag-op-stack-release.sh
ops/scripts/ci-docker-tag-op-stack-release.sh
+6
-0
messengers.md
specs/messengers.md
+28
-12
No files found.
.circleci/config.yml
View file @
c04a80c9
...
...
@@ -2,7 +2,7 @@ version: 2.1
orbs
:
go
:
circleci/go@1.5.0
gcp-cli
:
circleci/gcp-cli@
2.4
.1
gcp-cli
:
circleci/gcp-cli@
3.0
.1
commands
:
gcp-oidc-authenticate
:
description
:
"
Authenticate
with
GCP
using
a
CircleCI
OIDC
token."
...
...
@@ -189,8 +189,22 @@ jobs:
DOCKER_TAGS=$(echo -ne <<parameters.docker_tags>> | sed "s/,/\n/g" | sed "s/[^a-zA-Z0-9\n]/-/g" | sed -e "s|^|${IMAGE_BASE}:|")
echo -ne $DOCKER_TAGS | tr ' ' '\n' | xargs -L1 docker push
docker-tag-op-stack-release
:
docker-release
:
environment
:
DOCKER_BUILDKIT
:
1
parameters
:
docker_name
:
description
:
Docker image name
type
:
string
docker_tags
:
description
:
Docker image tags as csv
type
:
string
docker_file
:
description
:
Path to Dockerfile
type
:
string
docker_context
:
description
:
Docker build context
type
:
string
registry
:
description
:
Docker registry
type
:
string
...
...
@@ -199,17 +213,36 @@ jobs:
description
:
Docker repo
type
:
string
default
:
"
oplabs-tools-artifacts/images"
docker
:
-
image
:
cimg/python:3.7
resource_class
:
small
machine
:
image
:
ubuntu-2204:2022.07.1
resource_class
:
xlarge
steps
:
-
gcp-cli/install
-
gcp-oidc-authenticate
-
checkout
-
run
:
name
:
Tag
name
:
Build
command
:
|
IMAGE_BASE="<<parameters.registry>>/<<parameters.repo>>/<<parameters.docker_name>>"
DOCKER_TAGS=$(echo -ne <<parameters.docker_tags>> | sed "s/,/\n/g" | sed "s/[^a-zA-Z0-9\n]/-/g" | sed -e "s|^|-t ${IMAGE_BASE}:|")
docker build \
$(echo -ne $DOCKER_TAGS | tr '\n' ' ') \
-f <<parameters.docker_file>> \
--build-arg VERSION=$CIRCLE_TAG \
<<parameters.docker_context>>
-
run
:
name
:
Configure Docker
command
:
|
gcloud auth configure-docker <<parameters.registry>>
-
run
:
name
:
Publish
command
:
|
IMAGE_BASE="<<parameters.registry>>/<<parameters.repo>>/<<parameters.docker_name>>"
DOCKER_TAGS=$(echo -ne <<parameters.docker_tags>> | sed "s/,/\n/g" | sed "s/[^a-zA-Z0-9\n]/-/g" | sed -e "s|^|${IMAGE_BASE}:|")
echo -ne $DOCKER_TAGS | tr ' ' '\n' | xargs -L1 docker push
-
run
:
name
:
Tag
command
:
|
./ops/scripts/ci-docker-tag-op-stack-release.sh <<parameters.registry>>/<<parameters.repo>> $CIRCLE_TAG $CIRCLE_SHA1
contracts-bedrock-tests
:
...
...
@@ -1117,113 +1150,70 @@ workflows:
-
op-proposer-docker-build
release
:
jobs
:
-
docker-bui
ld
:
name
:
op-node-docker-build
-
ho
ld
:
type
:
approval
filters
:
tags
:
only
:
/^op-[a-z0-9\-]*\/v.*/
branches
:
ignore
:
/.*/
docker_file
:
op-node/Dockerfile
docker_name
:
op-node
docker_tags
:
<<pipeline.git.revision>>,<<pipeline.git.branch>>
docker_context
:
.
-
docker-publish
:
name
:
op-node-docker-publish
-
docker-release
:
name
:
op-node-docker-release
filters
:
tags
:
only
:
/^op-
[a-z0-9\-]*
\/v.*/
only
:
/^op-
node
\/v.*/
branches
:
ignore
:
/.*/
docker_file
:
op-node/Dockerfile
docker_name
:
op-node
docker_tags
:
<<pipeline.git.revision>>,<<pipeline.git.branch>>
docker_context
:
.
context
:
-
oplabs-gcr
-
oplabs-gcr
-release
requires
:
-
op-node-docker-bui
ld
-
docker-
build
:
name
:
op-batcher-docker-
build
-
ho
ld
-
docker-
release
:
name
:
op-batcher-docker-
release
filters
:
tags
:
only
:
/^op-
[a-z0-9\-]*
\/v.*/
only
:
/^op-
batcher
\/v.*/
branches
:
ignore
:
/.*/
docker_file
:
op-batcher/Dockerfile
docker_name
:
op-batcher
docker_tags
:
<<pipeline.git.revision>>,<<pipeline.git.branch>>
docker_context
:
.
-
docker-publish
:
name
:
op-batcher-docker-publish
filters
:
tags
:
only
:
/^op-[a-z0-9\-]*\/v.*/
branches
:
ignore
:
/.*/
docker_name
:
op-batcher
docker_tags
:
<<pipeline.git.revision>>,<<pipeline.git.branch>>
context
:
-
oplabs-gcr
-
oplabs-gcr
-release
requires
:
-
op-batcher-docker-bui
ld
-
docker-
build
:
name
:
op-proposer-docker-
build
-
ho
ld
-
docker-
release
:
name
:
op-proposer-docker-
release
filters
:
tags
:
only
:
/^op-
[a-z0-9\-]*
\/v.*/
only
:
/^op-
proposer
\/v.*/
branches
:
ignore
:
/.*/
docker_file
:
op-proposer/Dockerfile
docker_name
:
op-proposer
docker_tags
:
<<pipeline.git.revision>>,<<pipeline.git.branch>>
docker_context
:
.
-
docker-publish
:
name
:
op-proposer-docker-publish
filters
:
tags
:
only
:
/^op-[a-z0-9\-]*\/v.*/
branches
:
ignore
:
/.*/
docker_name
:
op-proposer
docker_tags
:
<<pipeline.git.revision>>,<<pipeline.git.branch>>
context
:
-
oplabs-gcr
-
oplabs-gcr
-release
requires
:
-
op-proposer-docker-bui
ld
-
ho
ld
-
docker-build
:
name
:
op-migrate-docker-
build
name
:
op-migrate-docker-
release
filters
:
tags
:
only
:
/^op-
[a-z0-9\-]*
\/v.*/
only
:
/^op-
migrate
\/v.*/
branches
:
ignore
:
/.*/
docker_file
:
op-chain-ops/Dockerfile
docker_name
:
op-migrate
docker_tags
:
<<pipeline.git.revision>>,<<pipeline.git.branch>>
docker_context
:
.
-
docker-publish
:
name
:
op-migrate-docker-publish
filters
:
tags
:
only
:
/^op-[a-z0-9\-]*\/v.*/
branches
:
ignore
:
/.*/
docker_name
:
op-migrate
docker_tags
:
<<pipeline.git.revision>>,<<pipeline.git.branch>>
context
:
-
oplabs-gcr
requires
:
-
op-migrate-docker-build
-
docker-tag-op-stack-release
:
name
:
docker-tag-op-stack-release
filters
:
tags
:
only
:
/^op-[a-z0-9\-]*\/v.*/
branches
:
ignore
:
/.*/
requires
:
-
op-node-docker-publish
-
op-proposer-docker-publish
-
op-batcher-docker-publish
-
op-migrate-docker-publish
context
:
-
oplabs-gcr-release
requires
:
-
hold
\ No newline at end of file
README.md
View file @
c04a80c9
<div
align=
"center"
>
<br
/>
<br
/>
...
...
op-batcher/Dockerfile
View file @
c04a80c9
FROM
golang:1.18.0-alpine3.15 as builder
ARG
VERSION=v0.0.0
RUN
apk add
--no-cache
make gcc musl-dev linux-headers git jq bash
# build op-batcher with the shared go.mod & go.sum files
...
...
@@ -15,7 +17,7 @@ COPY ./.git /app/.git
WORKDIR
/app/op-batcher
RUN
make op-batcher
RUN
make op-batcher
VERSION
=
"
$VERSION
"
FROM
alpine:3.15
...
...
op-node/Dockerfile
View file @
c04a80c9
FROM
golang:1.18.0-alpine3.15 as builder
ARG
VERSION=v0.0.0
RUN
apk add
--no-cache
make gcc musl-dev linux-headers git jq bash
# build op-node with the shared go.mod & go.sum files
...
...
@@ -13,7 +15,7 @@ COPY ./.git /app/.git
WORKDIR
/app/op-node
RUN
make op-node
RUN
make op-node
VERSION
=
"
$VERSION
"
FROM
alpine:3.15
...
...
op-proposer/Dockerfile
View file @
c04a80c9
FROM
golang:1.18.0-alpine3.15 as builder
ARG
VERSION=v0.0.0
RUN
apk add
--no-cache
make gcc musl-dev linux-headers git jq bash
# build op-proposer with the shared go.mod & go.sum files
...
...
@@ -14,7 +16,7 @@ COPY ./.git /app/.git
WORKDIR
/app/op-proposer
RUN
make op-proposer
RUN
make op-proposer
VERSION
=
"
$VERSION
"
FROM
alpine:3.15
...
...
ops/scripts/ci-docker-tag-op-stack-release.sh
View file @
c04a80c9
...
...
@@ -35,5 +35,11 @@ fi
echo
"Tagging
$SOURCE_IMAGE_TAG
with '
$IMAGE_TAG
'"
gcloud container images add-tag
-q
"
$SOURCE_IMAGE_TAG
"
"
$TARGET_IMAGE_TAG
"
# Do not tag with latest if the release is a release candidate.
if
[[
"
$IMAGE_TAG
"
==
*
"rc"
*
]]
;
then
echo
"Not tagging with 'latest' because the release is a release candidate."
exit
0
fi
echo
"Tagging
$SOURCE_IMAGE_TAG
with 'latest'"
gcloud container images add-tag
-q
"
$SOURCE_IMAGE_TAG
"
"
$TARGET_IMAGE_TAG_LATEST
"
specs/messengers.md
View file @
c04a80c9
...
...
@@ -27,20 +27,35 @@ upgrade.
The
`L2CrossDomainMessenger`
is a predeploy contract located at
`0x4200000000000000000000000000000000000007`
.
The base
`CrossDomainMessenger`
interface is:
```
solidity
interface CrossDomainMessenger {
event FailedRelayedMessage(bytes32 indexed msgHash);
event RelayedMessage(bytes32 indexed msgHash);
event SentMessage(address indexed target, address sender, bytes message, uint256 messageNonce, uint256 gasLimit);
function MESSAGE_VERSION() view external returns (uint16);
function messageNonce() view external returns (uint256);
function otherMessenger() view external returns (address);
function failedMessages(bytes32) view external returns (bool);
function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) payable external;
function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) payable external;
function successfulMessages(bytes32) view external returns (bool);
function xDomainMessageSender() view external returns (address);
event SentMessageExtension1(address indexed sender, uint256 value);
function MESSAGE_VERSION() external view returns (uint16);
function MIN_GAS_CALLDATA_OVERHEAD() external view returns (uint64);
function MIN_GAS_CONSTANT_OVERHEAD() external view returns (uint64);
function MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR() external view returns (uint64);
function MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR() external view returns (uint64);
function OTHER_MESSENGER() external view returns (address);
function baseGas(bytes memory _message, uint32 _minGasLimit) external pure returns (uint64);
function failedMessages(bytes32) external view returns (bool);
function messageNonce() external view returns (uint256);
function relayMessage(
uint256 _nonce,
address _sender,
address _target,
uint256 _value,
uint256 _minGasLimit,
bytes memory _message
) external payable;
function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) external payable;
function successfulMessages(bytes32) external view returns (bool);
function xDomainMessageSender() external view returns (address);
}
```
...
...
@@ -56,9 +71,10 @@ The user experience when sending from L1 to L2 is a bit different than when
sending a transaction from L2 to L1. When going into L2 from L1, the user does
not need to call
`relayMessage`
on L2 themselves. The user pays for L2 gas on L1
and the transaction is automatically pulled into L2 where it is executed on L2.
When going from L2 into L1, the user must call
`relayMessage`
on the
`L1CrossDomainMessenger`
to finalize the withdrawal. This function can only
be called after the finalization window has passed.
When going from L2 into L1, the user proves their withdrawal on OptimismPortal,
then waits for the finalization window to pass, and then finalizes the withdrawal
on the OptimismPortal, which calls
`relayMessage`
on the
`L1CrossDomainMessenger`
to finalize the withdrawal.
## Upgradability
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment