NethermindEth/eigenlayer

Operator Setup Issues: Go Path, CLI Install Issues, Key Creation Guidance

Closed this issue · 4 comments

Description
The notes below describe bugs encountered during CLI installation.
Tested on: MacOS 14 M1 processor

Issues

1 Setting Default GOPATH

On my mac GOPATH and GOBIN were not set. Should we instead first instruct the user to set GOPATH as appropriate for their environment?
References: https://github.com/NethermindEth/eigenlayer/blob/develop/README.md#install-eigenlayer-cli-using-go

2 CLI Install Errors using Go and Source

Do we support installation of the CLI to MacOS? If so, do these errors make sense to you?

Go client install error

wfmb14:~ wes$ echo $GOBIN
/Users/wes/go/bin
wfmb14:~ wes$ go install github.com/NethermindEth/eigenlayer/cmd/eigenlayer@latest
# github.com/NethermindEth/eigenlayer/internal/hardware_checker
go/pkg/mod/github.com/!nethermind!eth/eigenlayer@v0.4.0/internal/hardware_checker/hardware_checker.go:57:22: undefined: syscall.Sysinfo_t
go/pkg/mod/github.com/!nethermind!eth/eigenlayer@v0.4.0/internal/hardware_checker/hardware_checker.go:58:16: undefined: syscall.Sysinfo

Source install error


wfmb14:eigenlayer wes$ pwd
/Users/wes/projects/eigenlayer
wfmb14:eigenlayer wes$ make build
# github.com/NethermindEth/eigenlayer/internal/hardware_checker
../../internal/hardware_checker/hardware_checker.go:57:22: undefined: syscall.Sysinfo_t
../../internal/hardware_checker/hardware_checker.go:58:16: undefined: syscall.Sysinfo
# github.com/NethermindEth/eigenlayer/internal/hardware_checker
../../../internal/hardware_checker/hardware_checker.go:57:22: undefined: syscall.Sysinfo_t
../../../internal/hardware_checker/hardware_checker.go:58:16: undefined: syscall.Sysinfo
prog.go:14:2: no required module provides package github.com/NethermindEth/eigenlayer/pkg/daemon: go.mod file not found in current directory or any parent directory; see 'go help modules'
prog.go:12:2: no required module provides package github.com/golang/mock/mockgen/model: go.mod file not found in current directory or any parent directory; see 'go help modules'
2023/10/31 09:45:11 Loading input failed: exit status 1
cli/gen.go:3: running "mockgen": exit status 1
# github.com/NethermindEth/eigenlayer/internal/hardware_checker
../../../internal/hardware_checker/hardware_checker.go:57:22: undefined: syscall.Sysinfo_t
../../../internal/hardware_checker/hardware_checker.go:58:16: undefined: syscall.Sysinfo
# github.com/NethermindEth/eigenlayer/internal/hardware_checker
../../../internal/hardware_checker/hardware_checker.go:57:22: undefined: syscall.Sysinfo_t
../../../internal/hardware_checker/hardware_checker.go:58:16: undefined: syscall.Sysinfo
prog.go:14:2: no required module provides package github.com/NethermindEth/eigenlayer/pkg/daemon: go.mod file not found in current directory or any parent directory; see 'go help modules'
prog.go:12:2: no required module provides package github.com/golang/mock/mockgen/model: go.mod file not found in current directory or any parent directory; see 'go help modules'
2023/10/31 09:45:13 Loading input failed: exit status 1
pkg/daemon/gen.go:3: running "mockgen": exit status 1
make: *** [generate] Error 1

References:

3 Unable to execute arm64 binary

Should we be able to execute the arm64 binary on a standard mac?

wfmb14:temp wes$ curl -L https://github.com/NethermindEth/eigenlayer/releases/download/v0.4.0/eigenlayer-linux-arm64 --output eigenlayer
wfmb14:temp wes$ chmod +x eigenlayer
wfmb14:temp wes$ ./eigenlayer operator keys create --key-type ecdsa test
-bash: ./eigenlayer: cannot execute binary file

References: https://github.com/NethermindEth/eigenlayer/blob/develop/README.md#install-eigenlayer-cli-using-a-binary

4 Guidance for Create and List Keys

"You can create encrypted ecdsa and bls keys using the cli "
Instead of explaining all the possibilities - can we provide our recommended guidance for new Operators that do not understand the differences well enough to make an informed decision? E.g. which type of key do we recommend they generate?

References: https://github.com/NethermindEth/eigenlayer/blob/develop/README.md#create-and-list-keys

5 Supported OS

Should we add a section for Supported OSs and Processors?

@wesfloyd https://github.com/NethermindEth/eigenlayer/pull/134/files

For 1) Maybe we can add official Go documentation but I moved install from binary at top since it's the most recommended way of installation. If someone is familiar with GO, they would have these setup.

For 2) I added that we only support Linux amd64 and arm64.

For 3) Did you try it on linux or mac? I am assuming Mac which we don't support yet.

For 4) They need both the keys for operator registration. So they need to generate both keys. Do you think it makes sense to add this requirement in operator registration section?

For 5) I added that table in above PR, let me know if it looks good.

Thanks @shrimalmadhur

For 3) Yes, I was testing on a Macbook Pro Mac OS v14.0

For 4)
We need to explain to the user 1) what is required and 2) a recommended option for the least technical users. Since the "Create and List Keys" section occurs first, we should add a brief explanation that the user should either create or import their own keys, along with a sentence or two explaining what they keys are used for.

My assumption is we would recommend a less technical user to create their keys with the CLI, your thoughts?

I've added this comment inline for context.

For 5) The table is helpful, thank you.

@wesfloyd https://github.com/NethermindEth/eigenlayer/pull/136/files - we don't have remote keystore support. so if operators have existing keys they can import it - I adjusted your comment in that PR.

closed by #136