Shared volumes and processes between packages
lgaroche opened this issue · comments
Is your feature request related to a problem? Please describe.
Otterscan uses a patched version of Erigon's rpcdaemon module. I didn't manage to make it work using the remote TCP connection between rpcdaemon and Erigon. However it works like a charm if I use it in "local mode", i.e by sharing Erigon's datadir and using the same PID namespace for rpcdaemon and Erigon containers.
Describe the solution you'd like
A solution would be to allow sharing volumes and PID namespaces between packages. It would allow this package source to build with the sdk.
Describe alternatives you've considered
- Fix the remote rpcdaemon issue: Remote Erigon node unresponsive when searching in Otterscan #383 - However, according to rpcdaemon's readme, performance is way better in local mode
- Build an alternative Erigon package from Otterscan's fork - Does that mean a full resync? As it is a core package, will it be considered as a EL client in the dappnode UI ?
I'm not the expert here but AFAIK sharing the data dir would have a lot of critical security implications with the current implementation of the JWT needed to authenticate CL EL communication. And while erigon is maintained by the core team it's not a core package. And is too unstable currently even to use as a repo client which is why it's not an option currently. But our Docker experts will have a better response. @eduadiez @pablomendezroyo
hey! thanks for the issue, actually it is available to share the process between services in the same DAppNode package. You must use the following syntax in the compose:
services:
erigon:
...
rpcdaemon:
pid: "service:erigon"
Actually, the Erigon package was split into two services: rpcdaemon and erigon. Check it out at dappnode/DAppNodePackage-erigon@d8e60bd
Already supported