-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
S8 NN Update preparations #47
Conversation
modified: src/clientversion.h -> updated version to 1.2.1 modified: src/komodo_defs.h -> dpow s8 nn pubkeys and season definiitons and variables added modified: src/komodo_globals.h -> s8 hf height added modified: src/version.h -> protocol version incremented
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
Instance Creation of
NotaryChecker
:
You shouldn't create an instance of theNotaryChecker
class in the header file (src/komodo_defs.h
), as this will lead to multiple definition errors during compilation, like:/usr/bin/ld: libbitcoin_util.a(libbitcoin_util_a-util.o):/media/decker/data1tb/marmara/src/komodo_defs.h:742: multiple definition of `notaryChecker'; marmarad-bitcoind.o:/media/decker/data1tb/marmara/src/komodo_defs.h:742: first defined here /usr/bin/ld: libbitcoin_wallet.a(libbitcoin_wallet_a-rpcwallet.o):/media/decker/data1tb/marmara/src/./cc/../komodo_defs.h:742: multiple definition of `notaryChecker'; marmarad-bitcoind.o:/media/decker/data1tb/marmara/src/komodo_defs.h:742: first defined here
To resolve this, you can comment out the object creation like so:
// NotaryChecker notaryChecker;
and move it to another appropriate place in the codebase.
-
Incorrect Notary Pubkeys Array:
The notary pubkeys array you're using is incorrect. Since Marmara (MCL) is a third-party coin from the dPoW perspective, you need to grab the correct pubkeys from here. Without this, dPoW for MCL will not function properly. -
S8 Activation for MCL (Timestamp-based):
For MCL, as a third-party coin in Komodo's dPoW ecosystem, the S8 activation is timestamp-based. Thus, havingnS8Timestamp = 1728049053
is sufficient. You do not need to calculate the block height on the MCL chain to match Fri, Oct 4, 2024. So, the answer to "ShouldnS8HardforkHeight
be calculated according to Marmara chain blocks?" is no, it shouldn’t. -
NotaryChecker Class Usage:
As for the question "Should theNotaryChecker
class be added?", the answer is up to you. The primary purpose of this class is to perform a runtime check on the pubkeys array. If anything is incorrect or missing, the daemon won't start. If you want to implement this kind of protection against mistakes (like typos) in MCL, you may want to include the class in your codebase.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
p.s. JFYI, the Windows build will fail if ./src/cc/customcc.so
exists / remains from prev. builds:
make: *** No rule to make target 'libcc.dll', needed by 'marmarad.exe'. Stop.
p.p.s. One more note: It’s better to use your own DNS seeder rather than fixed seed nodes. This way, it will be easier to update A-records if the seed nodes change, rather than modifying hardcoded seed nodes.
addressindex and spendindex as true are critical for marmara to work: some cc functions require them. Those settings are enabled from the chain start |
You're absolutely right—I just mixed up the launch parameters with another chain. In this case, |
btw I managed to build marmara.exe (from fresh repo though) on ubuntu 18.04 and 20.04 (libcc.dll present in the src dir too) |
Ubuntu 22.04.5 LTS, (fresh repo clone, Steps to reproduce:
And in the logs after (6) we can see:
So, the reason is make reports p.s. Confirmed. The Windows build fails if
However, the following will not:
So, if p.p.s. And actually, |
@DeckerSU How can we do so? Could you explain how this approach can be implemented in the codebase? Btw, we were unable to get a successful macOS build for marmara due to
How can we adopt these for marmara? We would appreciate your guidance. |
It's built with -c flag. So it is named incorrectly but I guess still needed to build executable |
Adding a DNS seeder to the Marmara codebase is relatively easy to do. First, add your DNS seeder in sources here: Line 185 in 69277d1
For example:
Then, create A-records for
Do the same for |
As you mentioned above, the Komodo codebase uses Clang as the native macOS compiler. Therefore, you can follow the same approach. To achieve this, cherry-pick the necessary commits from the Komodo pull request: KomodoPlatform#618. |
Yes, of course, the custom CC library is necessary to build. However, there's no need to explicitly reference its |
This PR includes the changes for s8 NN update. We kindly request @DeckerSU and @dimxy to review the changes. Thank you in advance.
Regarding the changes