No Branch/Tag Specified
arm
asyncnotedecryption
danger
dev
dev-aarch64
dev-mac
dev-old-randomx
divzaddrs
dragonx
duke
freebsd
getfilterednotes
hip39
insync
jahway603
master
mvstuff
onryo
p2p_privacy
ramhash
relaytx
rx-largepages
setbestchain
warmup
witness_cache
wolfssl
wolfssl_win
z_createrawtransaction
z_importwallet
z_signmessage
v0.11.2.z0
v0.11.2.z1
v0.11.2.z2
v0.11.2.z3
v0.11.2.z4
v0.11.2.z5
v0.11.2.z6
v0.11.2.z7
v0.11.2.z8
v0.11.2.z9
v1.0.0
v1.0.0-beta1
v1.0.0-beta2
v1.0.0-rc1
v1.0.0-rc2
v1.0.0-rc3
v1.0.0-rc4
v1.0.1
v1.0.10
v1.0.10-1
v1.0.11
v1.0.11-rc1
v1.0.12
v1.0.12-rc1
v1.0.13
v1.0.13-rc1
v1.0.13-rc2
v1.0.14
v1.0.14-rc1
v1.0.15
v1.0.15-rc1
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.0.7-1
v1.0.8
v1.0.8-1
v1.0.9
v1.1.0
v1.1.0-rc1
v1.1.1
v1.1.1-rc1
v1.1.1-rc2
v1.1.2
v1.1.2-rc1
v2.0.0
v2.0.0-rc1
v2.0.1
v3.0.0
v3.1.0
v3.1.1
v3.10.0
v3.10.1
v3.10.2
v3.2.0
v3.2.1
v3.2.1-alpha
v3.2.1-beta
v3.2.2
v3.2.3
v3.3.0
v3.3.1
v3.3.2
v3.4.0
v3.4.1
v3.5.0
v3.5.1
v3.5.2
v3.6.0
v3.6.1
v3.6.2
v3.6.3
v3.7.0
v3.7.1
v3.8.0
v3.9.0
v3.9.1
v3.9.2
v3.9.3
v3.9.4
Labels
bounty up to 500 HUSH 2001-5000 bounty
bounty between 2001 and 5000 HUSH 501-2000 bounty
bounty between 501 and 2000 HUSH arm
something doesn't work on arm beginners
for new developers bug
may or may not be a bug build
problems building documentation
not enough information feature
new feature high priority
high priority i2p
related to i2p low priority
low priority medium priority
medium priority question
something is not clear release
release label or issue related to it testing
related to testing tor
related to tor wontfix
this won't be fixed
Apply labels
Clear labels
0-500 bounty
bounty up to 500 HUSH 2001-5000 bounty
bounty between 2001 and 5000 HUSH 501-2000 bounty
bounty between 501 and 2000 HUSH arm
something doesn't work on arm beginners
for new developers bug
may or may not be a bug build
problems building documentation
not enough information feature
new feature high priority
high priority i2p
related to i2p low priority
low priority medium priority
medium priority question
something is not clear release
release label or issue related to it testing
related to testing tor
related to tor wontfix
this won't be fixed
No Label
0-500 bounty
2001-5000 bounty
501-2000 bounty
arm
beginners
bug
build
documentation
feature
high priority
i2p
low priority
medium priority
question
release
testing
tor
wontfix
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
This issue will track RandomX support for Hush Smart Chains.
Bounty = 10000 HUSH
The bounty could be shared across a group of developers, and could be more or less depending on exactly what is done. 50% of bounty will be paid out when noticeable progress is made and the second 50% of the bounty will be paid out upon completion of the task and proof that a HSC can be mined on a CPU via randomX.
Details
We would like to integrate this audited C++ code: https://github.com/tevador/RandomX
Example code: https://github.com/tevador/RandomX/blob/master/src/tests/api-example1.c
Header API: https://github.com/tevador/RandomX/blob/master/src/randomx.h
Spec
After this is complete, users will be able to choose the RandomX algorithm via:
when creating a new HSC. All existing RandomX miners and mining pools should be compatible, we want to integrate into the existing RandomX community.
Task checklist:
miner.cpp:1003:13: warning: stack protector not protecting local variables: variable length buffer [-Wstack-protector]
Not required in this task:
This code should be implemented on the
randomx
branch which now exists, and merged intodev
when completedThe randomx config params that WOWnero uses are here:
62c6ea1176
Memory usage was cut in half, salt changed and opcode frequencies were changed, with no explanation. One opcode frequency was set to 0, which seems weird.
The random config params for ARQ are here: https://github.com/arqma/RandomARQ/blob/master/src/configuration.h
Salt was changed. They did not change opcode frequencies, and lowered memory requirements and program iterations and argon iterations
I have determined that changing randomx config params at run-time will be too complex, so all Hush Smart Chains will share the same RandomX configuration. We will change to use a unique salt and change other config params to be different from any other existing coins. If an ASIC/FPGA is built to mine RandomX, then it will be able to mine any HSC that uses our variant of RandomX. This seems reasonable. If any HSC would like to change this in the future, it can fork the code or make a branch to change some values at compile-time.
SCX coin did nothing but change the salt value, which seems like they don't know what they are doing:
ba7b5c426e
To explain a bit more, if a coin only changes the salt of their RandomX variant, that means an ASIC/FPGA built to do RandomX with custom salts could switch between XMR and that coin. Since XMR has the largest hashrate of any RandomX variant, this is not a good thing. This is why we will be changing a few more configuration values to make our RandomX variant incompatible with any ASIC/FPGA that are likely being built or already built for XMR's RandomX variant.
Arweave randomx config settings: https://github.com/ArweaveTeam/RandomX/blob/arweave/src/configuration.h which is mostly reducing memory usage
Interestingly they did not use the recommendations that were given in the audit by TrailOfBits
This code has been merged to
dev
and is undergoing testingWe have an issue dedicated to testing this, so this can be closed