You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Joja Poppa 9aee0f93c4 new caching algo. wow. 6 months ago
blockExplorer gitea init... 1 year ago
boostfedora_android gitea init... 1 year ago
boostfedora_emscripten image 1 year ago
docker_riscV64 small edit 7 months ago
docker_wasm trying fibers on riscv64 10 months ago
docker_x86_64 dockerfile... 1 year ago
external using virtual memory now... 6 months ago
include initial checking/setup for support for randomX 6 months ago
oldsite gitea init... 1 year ago
src new caching algo. wow. 6 months ago
tests work on cache exit efficiency... 8 months ago
.gitignore rework build... 1 year ago
CMakeListsAlpine.txt update to Alpine build... 1 year ago
CMakeListsAndroid.txt gitea init... 1 year ago
CMakeListsEmscripten.txt image 1 year ago
CMakeListsLinux.txt another major upgrde to the caching algo 8 months ago
CMakeListsMac.txt initial checking/setup for support for randomX 6 months ago
CMakeListsOld.txt gitea init... 1 year ago
CMakeListsRiscv32.txt check in... 11 months ago
CMakeListsRiscv64.txt now wchar 7 months ago
CMakeListsUbuntu18.txt new caching algo. wow. 6 months ago
CMakeListsUbuntu18Old.txt new caching algo. wow. 6 months ago
CMakeListsUbuntu18maybe.txt new caching algo. wow. 6 months ago
CMakeListsWindows.txt Windows build 8 months ago
CTestCustom.cmake gitea init... 1 year ago
Makefile gitea init... 1 year ago
README.md upgrading indices to support concurrent adding... to make wallet load faster... 1 year ago
checkheight.sh gitea init... 1 year ago
cpit.sh gitea init... 1 year ago
createcgroup.sh using virtual memory now... 6 months ago
download.sh gitea init... 1 year ago
elf.sh wip 1 year ago
emchanges.txt gitea init... 1 year ago
fedoragold_daemon.log new caching algo. wow. 6 months ago
forcefree.sh new caching algo. wow. 6 months ago
librandomx.a initial checking/setup for support for randomX 6 months ago
makeboost.sh.notes new caching algo. wow. 6 months ago
makedebug.sh upgrade for phmap 1 year ago
makefedora.sh new caching algo. wow. 6 months ago
makefedora_emscripten.sh image 1 year ago
makerelease.sh cleaning up link 1 year ago
mkit.sh wip 1 year ago
mmapOverRAM.sh new caching algo. wow. 6 months ago
run.sh big upgrade to fedoragold_simplewallet 1 year ago
run_daemon.sh wip on cache... 6 months ago
stopdaemon.sh gitea init... 1 year ago
tail.sh wip on cache... 6 months ago
test.sh gitea init... 1 year ago
testmine.sh gitea init... 1 year ago
walletd_status.sh gitea init... 1 year ago
webserver.sh gitea init... 1 year ago

README.md

image]

This was originally based on the reference code for CryptoNote cryptocurrency protocol. But, since has been modified for the FedoraGold (FED) project.

1. Default ports for P2P and RPC networking (src/CryptoNoteConfig.h)

P2P port is used by daemons to talk to each other through P2P protocol. RPC port is used by wallet and other programs to talk to daemon.

It’s better to choose ports that aren’t used by other software or coins. See known TCP ports lists:

Example:

const int P2P_DEFAULT_PORT = 17236;
const int RPC_DEFAULT_PORT = 18236;

2. Network identifier (src/P2p/P2pNetworks.h)

This identifier is used in network packages in order not to mix two different cryptocoin networks. Change all the bytes to random values for your network:

const static boost::uuids::uuid CRYPTONOTE_NETWORK = { { 0xA1, 0x1A, 0xA1, 0x1A, 0xA1, 0x0A, 0xA1, 0x0A, 0xA0, 0x1A, 0xA0, 0x1A, 0xA0, 0x1A, 0xA1, 0x1A } };

3. Seed nodes (src/CryptoNoteConfig.h)

Add IP addresses of your seed nodes.

Example:

const std::initializer_list<const char*> SEED_NODES = {
  "111.11.11.11:17236",
  "222.22.22.22:17236",
};

1. Minimum transaction fee (src/CryptoNoteConfig.h)

Zero minimum fee can lead to transaction flooding. Transactions cheaper than the minimum transaction fee wouldn’t be accepted by daemons. 100000 value for MINIMUM_FEE is usually enough.

Example:

const uint64_t MINIMUM_FEE = 100000;

2. Penalty free block size (src/CryptoNoteConfig.h)

CryptoNote protects chain from tx flooding by reducing block reward for blocks larger than the median block size. However, this rule applies for blocks larger than CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE bytes.

Example:

const size_t CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE = 20000;

Fifth step. Address prefix

You may choose a letter (in some cases several letters) all the coin’s public addresses will start with. It is defined by CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX constant. Since the rules for address prefixes are nontrivial you may use the prefix generator tool.

Example:

const uint64_t CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX = 0xe9; // addresses start with "f"

Sixth step. Genesis block

1. Build the binaries with blank genesis tx hex (src/CryptoNoteConfig.h)

You should leave const char GENESIS_COINBASE_TX_HEX[] blank and compile the binaries without it.

Example:

const char GENESIS_COINBASE_TX_HEX[] = "";

2. Start the daemon to print out the genesis block

Run your daemon with --print-genesis-tx argument. It will print out the genesis block coinbase transaction hash.

Example:

furiouscoind --print-genesis-tx

3. Copy the printed transaction hash (src/CryptoNoteConfig.h)

Copy the tx hash that has been printed by the daemon to GENESIS_COINBASE_TX_HEX in src/CryptoNoteConfig.h

Example:

const char GENESIS_COINBASE_TX_HEX[] = "013c01ff0001ffff...785a33d9ebdba68b0";

To build, change to a directory where this file is located, and run make. The resulting executables can be found in build/release/src.

Advanced options:

  • Parallel build: run make -j<number of threads> instead of make.
  • Debug build: run make build-debug.
  • Test suite: run make test-release to run tests in addition to building. Running make test-debug will do the same to the debug version.

Good luck!