How to Clone a Coin (links and resources)


#1

Here are a few of my old sources for cloning pretty much any Coin in as little as a few hours, I’ll also be adding some extras as well. Some links might be dead, you can always point them out and I’ll remove them :slight_smile:

Disclaimer: Most or all of these sources have been picked up from across the web and are quotes of different guides and I am not responsible for the accuracy of the information and I will not do tech support.

https://bitcointalk.org/index.php?topic=364076.20

http://www.allaboutcryptocurrency.info/2014/02/how-to-create-your-own-coin-based-on.html

http://www.dogecoin.ga/how_to_create_scrypt_based_altcoins.html

https://bitcointalk.org/index.php?topic=225690.msg2374550#msg2374550

Forums for Cloning and Compiling: https://howtocloneanaltcoin.com/index.php?topic=8.0

[size=14pt]Best Souce:[/size]
http://archive.today/jdOaV newer
http://archive.today/AbyN1

Building sources in Linux

http://www.unibia.com/unibianet/systems-networking/how-build-opensource-coin-ububtu-linux


Source for compiling Linux wallet

https://bitcointalk.org/index.php?topic=460178.0


#2

How to use Github for pushing commits and making changes


#3

How to hash a Genesis Block using SHA 256 (taken from howtocloneanaltcoin.com)


#4

Windows 64 Bit Windows Compilation Guide (taken from howtocloneanaltcoin.com)


#5

Compiling Windows Dependencies


#6

Windows 32 bit Litecoind and Litecoin Compiling Guide.

Compiling your own altcoin client can be tricky. Just make sure to follow all steps word for word. If you want to cheat you can download the pre-built dependencies here, though it is recommended to build your own.

  1. [size=14pt]Pre-installers[/size].
    [size=10pt]1a.File Compressor/Extractor[/size]
    Download and install Winrar or an alternate file compression tool.
    http://www.rarlab.com/download.htm
    [size=10pt]1b. Text Editor.[/size]
    Download and install a text editor such as Sublime Text. You need a text editor that can easily search and replace case sensitive text.

  2. [size=14pt]Download and install MingW[/size]
    http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
    Double click to install, keep the checkbox for the GUI checked and make sure to install in C:\MinGW. Press continue. From the MinGW GUI interface, go to all packages -> MYSYS
    Right click on the following installations and mark for installation.

msys-base-bin (may highlight other checkboxes which is fine)
msys-autoconf-bin
msys-automake-bin
msys-libtool-bin

Click on Installation -> Apply changes. MinGW will now download the remaining packages. Make sure to remove any previous installs of MinGW before starting.
Once complete, navigate to C:\MinGW\bin and you should only have a mingw-get application. If you have msys-gcc and msys-w32api you need to delete MinGW and check the correct install packages are selected above.

[size=10pt]Download and extract mingw32 to C:\mingw32[/size]
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.1/theads-posix/dwarf/i686-4.9.1-release-posix-dwarf-rt_v3-rev1.7z/download
You now need to change the path variables. Go to control panel->system and security->system. Click on advanced system properties->environmental variables. In the top box navigate to PATH and change to

C:\mingw32\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

Press ok. You may need to restart your computer to ensure the previous build variables are not cached.
Checking your MingW install. To start the MingW app navigate to C:\MinGW\msys\1.0\msys.bat, create a desktop shortcut as you will use the msys command as well as the windows command prompts. Double click to start and enter the following to display the version and correct paths.

gcc -v

Your msys output should look like the following code.

$ gcc -v
Using built-in specs.
COLLECT_GCC=c:\mingw32\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw32/bin/../libexec/gcc/i686-w64-mingw32/4.9.1/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-4.9.1/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/
mingw32 --with-sysroot=/c/mingw491/i686-491-posix-dwarf-rt_v3-rev1/mingw32 --with-gxx-include-dir=/mingw32/i686-w64-mingw32/include/c++
 --enable-shared --enable-static --disable-multilib --enable-languages=ada,c,c++,fortran,objc,obj-c++,lto --enable-libstdcxx-time=yes -
-enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynam
ic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-isl-version-check --disable-cloog-ve
rsion-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls
 --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib
 --with-gmp=/c/mingw491/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw491/prerequisites/i686-w64-mingw32-static --with-mpc=
/c/mingw491/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw491/prerequisites/i686-w64-mingw32-static --with-cloog=/c/mingw491
/prerequisites/i686-w64-mingw32-static --enable-cloog-backend=isl --with-pkgversion='i686-posix-dwarf-rev1, Built by MinGW-W64 project'
 --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -I/c/mingw491/i686-491-posix-dwarf-rt_v3-rev1/mingw32/opt/in
clude -I/c/mingw491/prerequisites/i686-zlib-static/include -I/c/mingw491/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -
pipe -I/c/mingw491/i686-491-posix-dwarf-rt_v3-rev1/mingw32/opt/include -I/c/mingw491/prerequisites/i686-zlib-static/include -I/c/mingw4
91/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe -L/c/mingw491/i686-491-posix-dwarf-rt_v3-rev1/mingw32/opt/li
b -L/c/mingw491/prerequisites/i686-zlib-static/lib -L/c/mingw491/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware'
Thread model: posix
gcc version 4.9.1 (i686-posix-dwarf-rev1, Built by MinGW-W64 project)

If you are having issues I have uploaded a MinGW install here

3.[size=14pt]Download and Install Dependencies.[/size]
Create a deps folder at C:\deps

3a.[size=10pt]OpenSLL[/size]- Install OpenSSL dependencies on Windows.
Download the latest version of OpenSSL https://www.openssl.org/source/openssl-1.0.1j.tar.gz to your deps folder.
Open the MinGW shell at C:\MinGW\msys\1.0\msys.bat

cd /c/deps/
tar xvfz openssl-1.0.1j.tar.gz
cd openssl-1.0.1j
./Configure no-zlib no-shared no-dso no-krb5 no-camellia no-capieng no-cast no-cms no-dtls1 no-gost no-gmp no-heartbeats no-idea no-jpake no-md2 no-mdc2 no-rc5 no-rdrand no-rfc3779 no-rsax no-sctp no-seed no-sha0 no-static_engine no-whirlpool no-rc2 no-rc4 no-ssl2 no-ssl3 mingw
make

3b.[size=10pt]Berkeley DB[/size]
Download http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz and place in your deps folder.
In the MinGW shell use the following code.

cd /c/deps/
tar xvfz db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
make

3c.[size=10pt]Boost[/size]
Download Boost to your deps folder. http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.zip/download
Make sure to download either the 7z or zip versions. Double click on the folder to extract boost_1_55_0 in your deps folder. This may take several minutes depending on your PC’s speed. Using the Windows command prompt, bootstrap and compile boost. To bring up the windows command prompt just type cmd in the windows search bar.

cd C:\deps\boost_1_55_0\
bootstrap.bat mingw
b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc variant=release link=static threading=multi runtime-link=static stage

3d.[size=10pt]Mini UPNP[/size]
Download and extract MiniUPNP http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.20140911.tar.gz to your deps folder.
Rename folder from “miniupnpc-1.9.20140911” to “miniupnpc” then from a Windows command prompt:

cd C:\deps\miniupnpc
mingw32-make -f Makefile.mingw init upnpc-static

3e.[size=10pt]Protoc and Libprotobuf:[/size]
Download and extract http://protobuf.googlecode.com/files/protobuf-2.5.0.zip to your deps folder.
In the msys shell run

cd /c/deps/protobuf-2.5.0
configure --disable-shared
make

3f.[size=10pt]libpng[/size]
Download and extract http://prdownloads.sourceforge.net/libpng/libpng-1.6.14.tar.gz?download to your deps folder. Extract.
In msys shell run

cd /c/deps/libpng-1.6.14
configure --disable-shared
make
cp .libs/libpng16.a .libs/libpng.a

3g.[size=10pt]qrencode[/size]
Download and extract http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz to your deps folder.
In msys shell run

cd /c/deps/qrencode-3.4.4

LIBS="../libpng-1.6.14/.libs/libpng.a ../../mingw32/i686-w64-mingw32/lib/libz.a" \
png_CFLAGS="-I../libpng-1.6.14" \
png_LIBS="-L../libpng-1.6.14/.libs" \
configure --enable-static --disable-shared --without-tools

make

#7

How to Clone Litecoin- Scrypt Coins- Windows 32 bit Litecoind and Litecoin Cloning Guide.

Cloning your own altcoin client can be tricky. Just make sure to follow all steps word for word. If you want to cheat you can download the pre-built dependencies here, though it is recommended to build your own.

I have divided the guide into easy to reference sections.

  1. Pre Installers

1a. Winrar
1b. Compression
1c. MinGW[/li]
2. Windows Deps.
2a. OpenSSL
2b.Berkeley DB
2c. Boost
2d. MiniUPNP
2e. Protoc and Libprotobuf
2f. Libpng
2g. qrencode

3. Download and Compile QT.

4. The Clone

4a. Source Code
4b. Copy and Replace Litecoin
4c. Copy and Replace LTC
4d. Change rpc and port numbers.
4e. Change starting letter for addresses.
4f. Update client version number.
4g. Change Litecoin example addresses to Clonecoin Addresses.
4h. Change char pchMessageStart and ParseHex.
4i. Change alert keys.
4j. Remove Merkel root and Genesis Block.
4k. Remove Nonce and testnet genesis.
4l. Add Epoochtime and Timestamp.
4m. Fixing the checkpoints.
4n. Change max money supply and coinbase maturity.
4o. Change block times from 2.5 minutes to 30 seconds.
4p. Change re-targeting
4q. Add premine and change block rewards.
4r. Update Images.
4s. Update Seed node/ AWS Seed node guide.
5. Hashing the Genesis Block and Merkel Root.
5a. Ability to hash Genesis Block.
5b. Compiling Clonecoin Windows QT.
5c. Generating Merkel Root
5d. Hashing the Genesis Block.

6. Connecting your nodes.
6a. Create a conf.
6b. Connect- server and home network.

7. Checkpointing the premine.

8. Clean up You Code.

9. Compiling Clonecoind.

9a. Compile Clonecoind.
9b. Remove and cleanup.

10. Github for release, made easy.
10a. Easy Pushing Commits/Launch code.
10b. Easy Revert Commits
10c. Easy Pushing Updates.

11. Common Errors

12. Quick Logos

13. The Website.
13a. The Template.
13b. Upload to a website.
14. The Launch. Ninja vs Pumped vs ICO.
14a. Prelaunch
14b. The Ninja
14c. The Pumped.
14d. The ICO.

[size=14pt]1. Pre Installers.[/size]
1a. File Compressor/Extractor
Download and install Winrar or an alternate file compression tool.
http://www.rarlab.com/download.htm

1b. Text Editor.
Download and install a text editor such as Sublime Text. You need a text editor that can easily search and replace case sensitive text.

1c. Download and install MingW
http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
Double click to install, keep the checkbox for the GUI checked and make sure to install in C:\MinGW. Press continue. From the MinGW GUI interface, go to all packages -> MYSYS
Right click on the following installations and mark for installation.

msys-base-bin (may highlight other checkboxes which is fine)
msys-autoconf-bin
msys-automake-bin
msys-libtool-bin

Click on Installation -> Apply changes. MinGW will now download the remaining packages. Make sure to remove any previous installs of MinGW before starting.
Once complete, navigate to C:\MinGW\bin and you should only have a mingw-get application. If you have msys-gcc and msys-w32api you need to delete MinGW and check the correct install packages are selected above.

Download and extract mingw32 to C:\mingw32
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.1/theads-posix/dwarf/i686-4.9.1-release-posix-dwarf-rt_v3-rev1.7z/download
You now need to change the path variables. Go to control panel->system and security->system. Click on advanced system properties->environmental variables. In the top box navigate to PATH and change to

C:\mingw32\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

Checking your MingW install. To start the MingW app navigate to C:\MinGW\msys\1.0\msys.bat, create a desktop shortcut as you will use the msys command as well as the windows command prompts. Double click to start and enter the following to display the version and correct paths.

gcc -v

Your msys output should look like the following code.

$ gcc -v
Using built-in specs.
COLLECT_GCC=c:\mingw32\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw32/bin/../libexec/gcc/i686-w64-mingw32/4.9.1/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-4.9.1/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/
mingw32 --with-sysroot=/c/mingw491/i686-491-posix-dwarf-rt_v3-rev1/mingw32 --with-gxx-include-dir=/mingw32/i686-w64-mingw32/include/c++
 --enable-shared --enable-static --disable-multilib --enable-languages=ada,c,c++,fortran,objc,obj-c++,lto --enable-libstdcxx-time=yes -
-enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynam
ic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-isl-version-check --disable-cloog-ve
rsion-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls
 --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib
 --with-gmp=/c/mingw491/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw491/prerequisites/i686-w64-mingw32-static --with-mpc=
/c/mingw491/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw491/prerequisites/i686-w64-mingw32-static --with-cloog=/c/mingw491
/prerequisites/i686-w64-mingw32-static --enable-cloog-backend=isl --with-pkgversion='i686-posix-dwarf-rev1, Built by MinGW-W64 project'
 --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -I/c/mingw491/i686-491-posix-dwarf-rt_v3-rev1/mingw32/opt/in
clude -I/c/mingw491/prerequisites/i686-zlib-static/include -I/c/mingw491/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -
pipe -I/c/mingw491/i686-491-posix-dwarf-rt_v3-rev1/mingw32/opt/include -I/c/mingw491/prerequisites/i686-zlib-static/include -I/c/mingw4
91/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe -L/c/mingw491/i686-491-posix-dwarf-rt_v3-rev1/mingw32/opt/li
b -L/c/mingw491/prerequisites/i686-zlib-static/lib -L/c/mingw491/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware'
Thread model: posix
gcc version 4.9.1 (i686-posix-dwarf-rev1, Built by MinGW-W64 project)

If you are having issues I have uploaded a MinGW install here

[size=14pt]2. Download and Install Dependencies.[/size]
Create a deps folder at C:\deps. If you want to cheat you can download the pre-built dependencies here, though it is recommended to build your own.

2a. OpenSLL- Install OpenSSL dependencies on Windows.
Download the latest version of OpenSSL https://www.openssl.org/source/openssl-1.0.1j.tar.gz to your deps folder.
Open the MinGW shell at C:\MinGW\msys\1.0\msys.bat

cd /c/deps/
tar xvfz openssl-1.0.1j.tar.gz
cd openssl-1.0.1j
./Configure no-zlib no-shared no-dso no-krb5 no-camellia no-capieng no-cast no-cms no-dtls1 no-gost no-gmp no-heartbeats no-idea no-jpake no-md2 no-mdc2 no-rc5 no-rdrand no-rfc3779 no-rsax no-sctp no-seed no-sha0 no-static_engine no-whirlpool no-rc2 no-rc4 no-ssl2 no-ssl3 mingw
make

2b. Berkeley DB
Download http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz and place in your deps folder.
In the MinGW shell use the following code.

cd /c/deps/
tar xvfz db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
make

4q. Add premine and change block rewards.
Since we initially increased block rewards by x10, we will increase the base reward from 50 to 500. We then add a premine on block 2 as well as a staggered decrease in block sizes.

4r. Update Images.
If you have not already, you will need a splash and logo.
You will need to update src/rec/icons- bitcoin.png, bitcoin_testnet.png, bitcoin.icon, bitcoin_testnet.icon all 256x256 pixels. toolbar.png and toolbar_testnet.png to 16x16 pixels.
also update src/res/images splash.png, splash_testnet.png and about.png.

4s. Update Seed node- First you will need to create a dedicated node. This is a quick easy guide.
Head to https://console.aws.amazon.com and create an account. Click on the EC2 link on the left. AWS pricing can be found http://aws.amazon.com/ec2/pricing/
Create and instance, select Microsoft Windows Server 2012 R2 Base, select your server preference- we chose t2.micro which is free tier eligible. Click Next: Configure Instance Details, highlight Protect against accidental termination, click review and launch.
Go to security settings, open all ports and click launch. Create a security key pair and make sure to download it and keep it safe. Launch your instance.
On the aws instance home screen click the Elastic IP tab, click allocate Ip address and confirm. While still in the Elastic IP tab, click allocate and allocate to the instance by clicking the top checkbox and identifying your server. Confirm. Your instance will take around 15 minutes to launch.
To connect. Click the instance tab, highlight your instance and press connect. Using your key from earlier, you are now able to download a server shortcut and server password.
Using your new Elastic IP, replace your new IP removing Litecoin old seed nodes.
src/net.cpp

static const char *strMainNetDNSSeed[][2] = {
    {"clonecointools.com", "54.232.218.200"},
    {NULL, NULL}
};

4.t Change the name of the bitcoin-qt.pro file to clonecoin-qt.pro
https://github.com/HowToCloneAnAltcoin/Clonecoin/commit/d309822b3b6519ca6424ac74df054ad351db1d88

[size=14pt]5. Hashing the Genesis Block and Merkel Root. [/size]

5a. Ability to hash Genesis Block.We now need to add the ability to hash a new genesis block so we add the following code to main.cpp.
main.cpp

 if (true && block.GetHash() != hashGenesisBlock)
        {
            printf("Searching for genesis block...\n");
            // This will figure out a valid hash and Nonce if you're
            // creating a different genesis block:
            uint256 hashTarget = CBigNum().SetCompact(block.nBits).getuint256();
            uint256 thash;
            char scratchpad[SCRYPT_SCRATCHPAD_SIZE];

            loop
            {
                scrypt_1024_1_1_256_sp(BEGIN(block.nVersion), BEGIN(thash), scratchpad);
                if (thash <= hashTarget)
                    break;
                if ((block.nNonce & 0xFFF) == 0)
                {
                    printf("nonce %08X: hash = %s (target = %s)\n", block.nNonce, thash.ToString().c_str(), hashTarget.ToString().c_str());
                }
                ++block.nNonce;
                if (block.nNonce == 0)
                {
                    printf("NONCE WRAPPED, incrementing time\n");
                    ++block.nTime;
                }
            }
            printf("block.nTime = %u \n", block.nTime);
            printf("block.nNonce = %u \n", block.nNonce);
            printf("block.GetHash = %s\n", block.GetHash().ToString().c_str());
            
            }

5b. Compiling Clonecoin Windows QT.
Create libleveldb.a and libmemenv.a.
Using Msys shell, run. For this we have Clonecoin in C:/Clonecoin

cd /C/clonecoin/src/leveldb
TARGET_OS=NATIVE_WINDOWS make libleveldb.a libmemenv.a

If the file already exists, Msys will inform you so.

Open your Clonecoin-qt.pro file.
We now need to change the dependency directory locations

# Dependency library locations can be customized with:
#    BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH,
#    BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively

OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build

to

# Dependency library locations can be customized with:
#    BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH,
#    BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
BOOST_LIB_SUFFIX=-mgw49-mt-s-1_55
BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0
BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib
BDB_INCLUDE_PATH=C:/deps/db-4.8.30.NC/build_unix
BDB_LIB_PATH=C:/deps/db-4.8.30.NC/build_unix
OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1j/include
OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1j
MINIUPNPC_INCLUDE_PATH=C:/deps/
MINIUPNPC_LIB_PATH=C:/deps/miniupnpc
QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4
QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.4/.libs
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build

and comment out the genleveldb command

genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS 

to

#genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS 

and add the flags for a static build.
Add to

CONFIG += static

to

CONFIG += thread
CONFIG += static

and

win32:QMAKE_LFLAGS *= -Wl,--large-address-aware

to

win32:QMAKE_LFLAGS *= -Wl,--large-address-aware  -static

Now from a the Windows cmd, run

set PATH=%PATH%;C:\Qt\4.8.6\bin
cd C:\clonecoin\
qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" clonecoin-qt.pro
mingw32-make -f Makefile.Release


Your Clonecoin qt should now be available in your C:\clonecoin\release folder after around 5 minutes. If errors occur, scroll up and read them try to identify and fix.

5c. Generating Merkel Root
Start your Clonecoin-qt. You should see an error Assertion failed!
Navigate to your Clonecoin appdata folder C:\Users(YOURPCNAME)\AppData\Roaming\Clonecoin and open the debug log in a text editor. The folder is hidden by default, so typing %appdata% in the Windows search bar will bring up access to the roaming\clonecoin folder.
Scroll to the bottom of the text to find the following lines.

2014-11-06 17:00:04 LoadBlockIndexDB(): last block file = 0
2014-11-06 17:00:04 LoadBlockIndexDB(): transaction index disabled
2014-11-06 17:00:04 Initializing databases...
2014-11-06 17:00:04 71154501f2bb79422cb9d06775463810e8ae59243460250f6c942ebd3a9712dd
2014-11-06 17:00:04 0000000000000000000000000000000000000000000000000000000000000000
2014-11-06 17:00:04 d010ddcc6651af0e28e50ee36096e438b7974da9d58f1be95a968b180756a0c8

The bottom hash is the merkel root, we take this and add it to main.cpp

assert(block.hashMerkleRoot == uint256("0xd010ddcc6651af0e28e50ee36096e438b7974da9d58f1be95a968b180756a0c8"));


#8

How to setup Seednodes

These can be a serious pain in the ass to get working and let’s face it – the information available on them is rather fragmented and vague at best, even if you are already accustomed to the workings of currencies.

This guide is divided into three parts:

  1. Adapting the seeder software
  2. The web stuff
  3. Running the seeder

Before doing anything else, it would be best to have a web address in mind for your seeder. Most of them use subdomains i.e. dnsseed.yourcoin.org rather than regular page links such as yourcoin.org/dnsseed (this is for DNS record reasons). You don’t have to call yours dnsseed; in fact you can call it what the hell you like.

Adapting the Software
1.1) In your currency’s net.cpp enter the address that will be used for your seeder i.e.

static const char *strMainNetDNSSeed[][2] = {
{"yourcoin.org", " dnsseed.yourcoin.org "},
        {NULL, NULL}
}

You will need to recompile all your wallets before release for these changes to take effect, so make sure you settle for something that won’t need to be changed later.

1.2) Download or make a fork of the Litecoin Seeder https://github.com/pooler/litecoin-seeder which is based on sipa’s Bitcoin Seeder https://github.com/sipa/bitcoin-seeder). You can use either version and it doesn’t matter whether your coin is SHA-256, Scrypt, X-11 etc. The LTC version is used here for demonstration purposes because it has already been customized and the most relevant/important stuff has already been changed. This means there’s commit history and it’s much easier to show changes using GitHub as it has color coded syntax highlighting - which isn’t possible on this forum. Whichever version you use, read the README to familiarize yourself with the process.

1.3) Using this Litecoin Seeder historical commit as a reference: https://github.com/pooler/litecoin-seeder/commit/3c64ed5ab35f597480712818a27d442100332719#diff-4ed1bfdfd26731997cfdb6c1085c6692, you need to alter your own seeder code with your coin’s ports, magic bytes (pchMessageStart stuff), protocol version, seeder name and the web address of your of your DNS seed.

Note: When adding your domain name in the seeder’s main.cpp, if you only have one site to enter, use the following syntax in full:

Otherwise you will get segmentation faults when compiling later.

1.4) Upload your repo to GitHub.

The Web Stuff
The main point of this stage is to (very loosely put it) redirect traffic from your website by creating a DNS ‘NS Record’ and an ‘A record’ to instruct where the resources can be found. This will enable your web address to forward to a host somewhere else, such as a VPS running the DNS Seeder software.

2.1) In your website host’s admin panel website, create a subdomain. If you are self-hosting you probably might not need to create a subdomain and can just use DNS records to achieve the desired result. Use the address entered in your currency’s main.cpp i.e dnsseed.yourcoin.org. Web host admin panels vary tremendously, so you may need to Google how to do this on yours. This link has useful info on creating an NS record http://help.dnsmadeeasy.com/spry_menu/ns-record/

You might need to do this twice – once for dnsseed.yourcoin.org and again for www.dnsseed.yourcoin.org. Alternatively, if you self-host, you will need to use the run in this Linux terminal command to create the NS record:

(Obviously changing the dnsseed.yourcoin.org and 192.168.0.1 to the relevant domain name and IP address of your VPS).

2.2) Create an ‘A Record’ (Address record) that points your dnsseed.yourcoin.org to the IP address of your VPS.

You can check the DNS status by typing the following into a Windows/Linux/Mac command prompt/terminal, even on your home PC:

The IP address of your VPS should be displayed if the record is working correctly but be aware it may take a while for the DNS record to propagate, so please be patient.

Please note that some web hosts do not allow you to create NS records on shared hosting plans, so if the option to create one isn’t available, send their support team a message. They create one for you or may tell you that you need to upgrade your hosting plan. Try your luck with just an A record instead and see if it works.

Running the seeder

The seeder has to be compiled before it can be used!

3.1) Clone your seeder’s GitHub repository onto the VPS/server that will be running it and navigate into the seeder’s main folder.

3.2) If you are using 64-bit operating systems, make sure that initial compiler flags in the Makefile are set to:

3.3) To compile, type the following the terminal:

3.4) Now you need to instruct the seeder to run and look up the host and name server, so in the terminal you need to enter something along the lines of the following but (obviously!!)… change dnsseed.yourcoin.org to your seeder’s website address and the 192.168.0.1 to your server/VPS IP address.

This guide isn’t a definitive guide and WILL need some improvements so if you come across any problems, please post them in here rather than PM me as I don’t have time to help everybody. Hopefully people who have come across similar issues too will be able to help out and turn this thread into something that is a useful resource.

Other resources

https://bitcointalk.org/index.php?topic=585551.0
https://bitcointalk.org/index.php?topic=34586.msg1983185#msg1983185
https://bitcointalk.org/index.php?topic=775332.msg8901349#msg8901349


#9

How to Setup a Block Explorer

https://bitcointalk.org/index.php?topic=783199.0

For all coins who need block explorer its open source based and it simple to run.
We are one of sponsors of this project open source based
explorer can build easy with these example and simple steps:
sample explorer: http://root.explorer.ssdpool.com:9083/
explorer source is public https://github.com/iquidus/explorer
example guide how to build explorer ( can read and readme in source) :

first clone source
git clone https://github.com/iquidus/explorer explorer

Install node modules
cd explorer && npm install

configure your coin
cp ./settings.json.template ./settings.json
and edit settings.json
with coin name , coin settings etc genesis transaction and genesis block and user and password and port to rpc daemon ( can make and with wallet- server=1 )

after this can make:
npm start

and for sync blocks
node scripts/sync.js index update

and congratilations you have builded explorer

if you cannot setup for you we can help setup your explorer if you need in our or your hosting for symbolic fee can pm if need

if need something other service can read this or on private pm:
https://bitcointalk.org/index.php?topic=734614.msg9102698#msg9102698

We provide block explorers with good designed.
You may enter a block height, block hash, tx hash or address.
not based on abe -ts fully custom development :slight_smile:
example: http://root.explorer.ssdpool.com:9083/
can search address example: http://root.explorer.ssdpool.com:9083/address/RSmMJGDCXeP2wGCTJn74js1s5VcNqbjpg6
can search transaction example: http://root.explorer.ssdpool.com:9083/tx/f48dd5a200eb893964aeb6fb47a088e332df5d75a2ca0b8daec70248e1806cdf
can search blocks( heigh or hash) example: http://root.explorer.ssdpool.com:9083/block/000000178401150f72b2ff5a18e3c87784ff2b0e99ed30e36cc624ebff450f3d
Free for use API example: http://root.explorer.ssdpool.com:9083/info
hosting of explorers in stable datacenter.

latest news: in 10.09.2014 added address search
in development progress:

  1. rich list -finished example http://root.explorer.ssdpool.com:9083/richlist
  2. market with bittrex info added -finished example : http://root.explorer.ssdpool.com:9083/bittrex
    latest news: in 30.09.2014
  3. total coins supply - finished example in first page : http://root.explorer.ssdpool.com:9083/
  4. added api for total coin supply - for external use finished ( etc. for coinmarketcap.com ) example : http://root.explorer.ssdpool.com:9083/ext/getmoneysupply
  5. adding distribution chart’s and graphics finished example : http://root.explorer.ssdpool.com:9083/richlist
  6. adding distribution chart’s api ( json) for external use if someone need to make him own graphics on external application finished example: http://root.explorer.ssdpool.com:9083/ext/getdistribution
  7. added getaddress api for json for external use for check balance, sent, receive , last transactions finished sample: http://root.explorer.ssdpool.com:9083/ext/getaddress/RSmMJGDCXeP2wGCTJn74js1s5VcNqbjpg6
    8.Fix performance and optimization with many blocks more over 200k -finished
  8. added faucet in development will be added to explorer at option.
    soon will have example

IRC CHAT support irc.freenode.net #coin-services


#10

Setting up a virtual desktop on a VPS

Here is how it looks having a virtual desktop and connecting to it through VNCviewer


#11

Sidechain Snapshots - Claiming Coins using Private Keys


#12

Ok made wiki articles from all of these so they can be edited later on.


#13

I guess we need a wiki


#15

I’ll add more as I find more material, I think a wiki is a great idea and to have it all here as resources will help the GetHashing forums in general.

GetHashing is the second largest opensource community outside Bitcointalk.


#16

Screw this Hires someone


#17

and I thought HT had us all covered X-times over… traffic wise…


#18

People only go to HT to spy, there are more technical people here.