hashgraph / hedera-services

Crypto, token, consensus, file, and smart contract services for the Hedera public ledger
Apache License 2.0
313 stars 138 forks source link

Groundwork for modules #3893

Closed rbair23 closed 2 years ago

rbair23 commented 2 years ago

Problem

The current services codebase is not setup for multiple modules.

Solution

Alternatives

No response

mhess-swl commented 2 years ago

Found an issue. Moving <project-root>/hedera-node/src under a new hedera-mono-service subproject (see #3893) messes up the gradle run task because of the locations of settings.txt and hedera-node/data. settings.txt has to be in the same directory that the local node is run, but unfortunately the Hedera platform code doesn’t allow the keysDirPath property to be configured inside of the settings file (it's not a 'modifiable' field in the class–see call to Modifier#isFinal inside of platform'scom.swirlds.platform.Settings#handleSettings), so we can’t point the local node to the hedera-node/data directory. We may be able to move the hedera-node/data directory underneath hedera-mono-service so it’s in the same dir as src, but I really hesitate to do that because of all the <project-root>/test-clients code that relies on hedera-node/data right now.