The "DIstributed Analytical BLOckchain" Benchmark Framework. (Diablo). Measures blockchains with a focus on real-world applications and workload generation.
Apache License 2.0
11
stars
8
forks
source link
Go dependencies between v1 and v2 launching an experiment #28
Describe the bug
I'm trying to use the instructions in the https://diablobench.github.io/fresh-install at the Install yourself sections and use the
final command ./bin/eurosys workload-native-10.yaml setup.txt
I’m facing several issues with go during the deploy, because minion (v2) set the go version to 1.17.8 (while in diablo-v1 use 1.14 or greater). The step is when v2 take from repo v1 the Makefile and make these step:
go mod tidy
make reqs
make diablo
what I noticed are problems with:
golang.org/x/lint
golang.org/x/tools/go/ast/astutil
golang.org/x/tools/internal/typeparams
golang.org/x/tools/go/gcexportdata
Screenshots
Docker Container Environment
OS: Both Ubuntu 20 and 22.04
Others
Question:
I'm trying to understand how you use minion (v2) in the paper at https://arxiv.org/abs/2311.09440, because i notice that from the "minion paper" you switch from AWS to a simple testbed that i think use just SSH.
Since i'm going to do the same, i need to understand the steps to not use AWS. In particular, are the guidelines given in the FreshInstallation/InstallYourself section useful? With setup.txt file to be used in order to execute the experiment i need on more than one machine/container simply with ssh
@NatoliChris @gauthier-voron @lebdron
Also, I'm using the Dockerfile below to solve other dependencies issues that happen during the deploy, but then i stop on the bug above.
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y && \
apt-get install -y \
openssh-client openssh-server \
net-tools netcat \
cloud-utils \
curl wget \
git python3-pip \
bash \
perl-base libconfig-yaml-perl libcapture-tiny-perl libbz2-dev libreadline-dev libssl-dev libffi-dev libsqlite3-dev libncurses5-dev libncursesw5-dev liblzma-dev \
sudo
SHELL ["/bin/bash", "-c"]
RUN echo "ALL ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/nopasswd
COPY id_ed25519 /root/.ssh/id_ed25519
COPY id_ed25519.pub /root/.ssh/id_ed25519.pub
COPY id_ed25519.pub /root/.ssh/authorized_keys
RUN echo "StrictHostKeyChecking no" >> /root/.ssh/config
RUN chmod 700 /root/.ssh && \
chmod 600 /root/.ssh/id_ed25519.pub && \
chmod 600 /root/.ssh/authorized_keys && \
chmod 600 /root/.ssh/config
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config && \
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22
RUN curl -L https://install.perlbrew.pl | bash
RUN source /root/perl5/perlbrew/etc/bashrc
RUN exec bash; \
perlbrew install --notest --force perl-5.34.0; \
perlbrew switch perl-5.34.0
# Install other Perl dependencies
RUN wget -O YAML-1.24.tar.gz http://search.cpan.org/CPAN/authors/id/T/TI/TINITA/YAML-1.24.tar.gz; \
tar -xzvf YAML-1.24.tar.gz; \
cd YAML-1.24; \
perl Makefile.PL; \
make; \
make install; \
cd /; \
wget -O IO-Tee-0.65.tar.gz http://search.cpan.org/CPAN/authors/id/N/NE/NEILB/IO-Tee-0.65.tar.gz; \
tar -xzvf IO-Tee-0.65.tar.gz; \
cd IO-Tee-0.65; \
perl Makefile.PL; \
make; \
make install; \
cd /; \
cpan -i Capture::Tiny; \
cpan -i XML::Simple; \
cpan YAML;
cpan JSON
RUN curl https://pyenv.run | bash; \
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> /root/.bashrc; \
echo 'eval "$(pyenv init --path)"' >> /root/.bashrc; \
echo 'eval "$(pyenv virtualenv-init -)"' >> /root/.bashrc; \
source /root/.bashrc
RUN exec bash; \
pyenv install -s 3.10.6; \
pyenv global 3.10.6; \
pip install PyYAML
RUN apt-get clean; rm -rf /var/lib/apt/lists/
Describe the bug I'm trying to use the instructions in the https://diablobench.github.io/fresh-install at the Install yourself sections and use the final command
./bin/eurosys workload-native-10.yaml setup.txt
I’m facing several issues with go during the deploy, because minion (v2) set the go version to 1.17.8 (while in diablo-v1 use 1.14 or greater). The step is when v2 take from repo v1 the Makefile and make these step:
what I noticed are problems with: golang.org/x/lint golang.org/x/tools/go/ast/astutil golang.org/x/tools/internal/typeparams golang.org/x/tools/go/gcexportdata
Screenshots
Docker Container Environment
Others Question: I'm trying to understand how you use minion (v2) in the paper at https://arxiv.org/abs/2311.09440, because i notice that from the "minion paper" you switch from AWS to a simple testbed that i think use just SSH. Since i'm going to do the same, i need to understand the steps to not use AWS. In particular, are the guidelines given in the FreshInstallation/InstallYourself section useful? With setup.txt file to be used in order to execute the experiment i need on more than one machine/container simply with ssh @NatoliChris @gauthier-voron @lebdron
Also, I'm using the Dockerfile below to solve other dependencies issues that happen during the deploy, but then i stop on the bug above.