I would like to know if it is at all possible to have multiple geth processes share the same chain data.
I currently have multiple nodes (for a private chain) connected to the same file system via NFS and hosting their chain data on that file system. They each have their own database with their own chain data in it, but I would like to have them share the same data so I do not need to keep a separate redundant copy of all the data for each individual node. This represents a large savings in storage space.
The naive approach of assigning all the processes to the same datadir results in one node working and the other nodes being locked out of the database.
I am open to forking repositories and making software modifications if this is plausible but not currently possible, and I appreciate any insight on how to go about this if necessary.
Thanks in advance for any help or advice you can provide.
Edit 1:
- My intention isn't for all nodes on the network to share the same data set, just for certain clusters of them. My intention would be for all peers in a particular region to share chain data, but I would control multiple regions, and there would be outside users connecting to the network as well.
- I control and trust all nodes that would be sharing chain data. Other network peers which I do not control would manage their own chain data.
- The impression I get is that it is unlikely to be an existing feature, but I am still interested in modifying software to make this happen. If this is impossible due to the details of how things like leveldb and geth work, I would like to understand why.