From d1642b6f6b8b997b80e8b38114309814dedd8e48 Mon Sep 17 00:00:00 2001 From: Chris Pinnock Date: Wed, 6 Dec 2023 20:43:59 +0000 Subject: [PATCH] Packages: Experimental EVM node package --- scripts/dpkg/evmnode-control.in | 6 ++ scripts/dpkg/evmnode.postinst | 15 ++++ scripts/pkg-common/evmnode-binaries | 1 + scripts/pkg-common/evmnode.conf | 22 ++++++ scripts/pkg-common/evmnode.initd.in | 90 ++++++++++++++++++++++++ scripts/pkg-common/experimental-binaries | 1 - scripts/rpm/evmnode-spec.in | 27 +++++++ 7 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 scripts/dpkg/evmnode-control.in create mode 100644 scripts/dpkg/evmnode.postinst create mode 100644 scripts/pkg-common/evmnode-binaries create mode 100644 scripts/pkg-common/evmnode.conf create mode 100755 scripts/pkg-common/evmnode.initd.in create mode 100644 scripts/rpm/evmnode-spec.in diff --git a/scripts/dpkg/evmnode-control.in b/scripts/dpkg/evmnode-control.in new file mode 100644 index 000000000000..e58588d99e26 --- /dev/null +++ b/scripts/dpkg/evmnode-control.in @@ -0,0 +1,6 @@ +Package: @PKG@ +Version: @VERSION@ +Architecture: @ARCH@ +Maintainer: @MAINT@ +Description: The Octez EVM node +Depends: @DEPENDS@ diff --git a/scripts/dpkg/evmnode.postinst b/scripts/dpkg/evmnode.postinst new file mode 100644 index 000000000000..c05d9dd05686 --- /dev/null +++ b/scripts/dpkg/evmnode.postinst @@ -0,0 +1,15 @@ +#!/bin/sh + +user=tezos +group=tezos +homedir=/var/tezos + +# Ensure the tezos user is created +getent group ${group} >/dev/null 2>&1 || addgroup ${group} +getent passwd ${user} >/dev/null 2>&1 || adduser --home $homedir \ + --shell /bin/bash \ + --disabled-password \ + --ingroup ${group} ${user} + +# Reload to get new init scripts +/usr/bin/systemctl daemon-reload diff --git a/scripts/pkg-common/evmnode-binaries b/scripts/pkg-common/evmnode-binaries new file mode 100644 index 000000000000..58f972c91b5f --- /dev/null +++ b/scripts/pkg-common/evmnode-binaries @@ -0,0 +1 @@ +octez-evm-node diff --git a/scripts/pkg-common/evmnode.conf b/scripts/pkg-common/evmnode.conf new file mode 100644 index 000000000000..d14871c3d924 --- /dev/null +++ b/scripts/pkg-common/evmnode.conf @@ -0,0 +1,22 @@ +# User to run as +#user=tezos +#group=tezos + +# My details +evmaddr=0.0.0.0 +evmport=8545 +evmmode=proxy # or sequencer + +# Assume the Smart Rollup node is on the local machine. Change if not. +sraddr=127.0.0.1 +srrpcport=8932 + +# Or override with srnodeurl +#srnodeurl="http://127.0.0.1:8732" + +# additional options +additional_cliopts="" + +# e.g. +#additional_cliopts="--devmode" + diff --git a/scripts/pkg-common/evmnode.initd.in b/scripts/pkg-common/evmnode.initd.in new file mode 100755 index 000000000000..9f77f297d7ba --- /dev/null +++ b/scripts/pkg-common/evmnode.initd.in @@ -0,0 +1,90 @@ +#!/bin/bash +# Start/stop the Octez EVM node compatibility endpoint +# +### BEGIN INIT INFO +# Provides: octez-evmnode +# Required-Start: +# Required-Stop: +# Should-Start: $network $named +# Should-Stop: $network $named +# Default-Start: 2 3 4 5 +# Default-Stop: +# Short-Description: The Octez EVM node endpoint +# Description: The Octez EVM node endpoint is used for Etherlink and +# EVM rollups +### END INIT INFO + +PATH=/bin:/usr/bin:/sbin:/usr/sbin +DESC="octez evm node" +NAME=octez-evmnode +PIDDIR=/var/run/tezos +SCRIPTNAME=/etc/init.d/"$NAME" + +if [ -f "/lib/lsb/init-functions" ]; then + . /lib/lsb/init-functions +else + . /etc/rc.d/init.d/functions +fi + +# Defaults +user=tezos +group=tezos +sraddr=127.0.0.1 +srrpcport=8932 + +evmaddr=0.0.0.0 +evmport=8545 +evmmode=proxy + +additional_cliopts="" + +logdir=/var/log/tezos +rotateonstart=yes + +[ -r /etc/octez/evmnode.conf ] && . /etc/octez/evmnode.conf + +[ -z "$srnodeurl" ] && srnodeurl="http://$sraddr:$srrpcport" + +logfile="${logdir}/evmnode.log" +evm="/usr/bin/octez-evm-node" + +initial_checks() +{ + mkdir -p ${PIDDIR} + chown $user:$group ${PIDDIR} + + mkdir -p ${logdir} + chown $user:$group ${logdir} + +} + +rotate_logs () +{ + if [ ${rotateonstart} = "yes" ]; then + [ -f "${logfile}" ] && mv -f "${logfile}" "${logfile}.1" + fi +} + +case "$1" in +start) initial_checks + rotate_logs + su $user -c "${evm} run ${evmmode} with endpoint $srnodeurl --rpc-addr ${evmaddr} --rpc-port ${evmport} ${additional_cliopts} >> ${logfile} 2>&1 &" + ;; +stop) + pkill -f octez-evm-node + ;; +restart) + $0 stop + $0 start + ;; +reload|force-reload) + ;; +status) + status_of_proc ${evm} $NAME || exit $? + exit 0 + ;; +*) echo "Usage: $0 {start|stop|status|restart|reload|force-reload}" >&2 + exit 2 + ;; +esac +exit 0 diff --git a/scripts/pkg-common/experimental-binaries b/scripts/pkg-common/experimental-binaries index 3109a9ac16f0..29cabced2f20 100644 --- a/scripts/pkg-common/experimental-binaries +++ b/scripts/pkg-common/experimental-binaries @@ -1,4 +1,3 @@ -octez-evm-node octez-dac-node octez-dac-client octez-dal-node diff --git a/scripts/rpm/evmnode-spec.in b/scripts/rpm/evmnode-spec.in new file mode 100644 index 000000000000..07092602cfcc --- /dev/null +++ b/scripts/rpm/evmnode-spec.in @@ -0,0 +1,27 @@ +Name: @PKG@ +Version: @VERSION@ +Release: @REVISION@ +Summary: The Octez EVM node + +License: MIT +URL: http://tezos.gitlab.io + +Packager: @MAINT@ +Source0: @FAKESRC@ + +%prep +%setup -q + +%install +tar cpf - . | (cd $RPM_BUILD_ROOT && tar xpf -) + +%description +The Octez EVM node + +%files +%{_bindir}/octez-* + +%post +getent group tezos >/dev/null 2>&1 || groupadd tezos +getent passwd tezos >/dev/null 2>&1 || useradd -g tezos -d /var/tezos tezos +/usr/bin/systemctl daemon-reload -- GitLab