Bitcoin Forum

Other => Beginners & Help => Topic started by: thomas41546 on June 23, 2011, 07:08:34 PM



Title: How to kick start a private bitcoin network?
Post by: thomas41546 on June 23, 2011, 07:08:34 PM
So far I have 3 virtual machines running linux. My nodes are 100% attempting to generate coins are 100% connected to each other.
Each is running the bitcoin daemon with the following configuration settings.

gen=1
connect=192.168.70.128
connect=192.168.70.129
noirc=1

The nodes are connected to each other via the bitcoin daemon. When I go ./bitcoind getinfo I see 2 connections for each node.

My problem is that for some reason bitcoins are not being generated.

I believe the problem lies at the genesis block. Does the genesis block need to have the public key set to one of my nodes? Right now I have it set to default so the public key refrenced in the genesis block is the default.

I have tried to look around on these forums and IRC... so far I have not found the specifics of starting a custom network.

Any help would be great. Thanks a lot.


Title: Re: How to kick start a private bitcoin network?
Post by: luxgladius on June 23, 2011, 07:29:14 PM
Just glancing at the code, you probably have to specify the -testnet argument as well.


Title: Re: How to kick start a private bitcoin network?
Post by: thomas41546 on June 23, 2011, 07:52:07 PM
I'm trying to create my own private bitcoin network. I don't want to connect to an already existing network such as testnet.


Title: Re: How to kick start a private bitcoin network?
Post by: luxgladius on June 23, 2011, 08:11:29 PM
Then you'll need to modify the code and recompile. The place I saw testnet being referenced was here:

Code:
void BitcoinMiner()
{
        ...
        while (vNodes.empty() || IsInitialBlockDownload())
        {
            Sleep(1000);
            if (fShutdown)
                return;
            if (!fGenerateBitcoins)
                return;
        }

...

bool IsInitialBlockDownload()
{
    if (pindexBest == NULL || (!fTestNet && nBestHeight < 118000))
        return true;

So currently it's hard-coded to not even try to generate blocks until after it has 118000 unless it's on a test net. Among other things affected by the testnet flag are the genesis block.


Title: Re: How to kick start a private bitcoin network?
Post by: thomas41546 on June 23, 2011, 08:35:15 PM
Oh that is beautiful. ;D

I had no idea that was hard coded in there. I'll have a go at the -testnet flag on my private network, as you previously mentioned.  ::)

Thanks a lot. 


Title: Re: How to kick start a private bitcoin network?
Post by: coinage on June 23, 2011, 08:45:53 PM
Also, the actual bitcoin genesis block was partly hand-tweaked, so to speak.  For one thing, it has a text message embedded in its coinbase parameter, unlike succeeding blocks.  This may be irrelevant however.  I haven't looked into running a standalone testnet.

Then there is the more recent example of the Namecoin project's genesis block...


Title: Re: How to kick start a private bitcoin network?
Post by: MoonShadow on June 23, 2011, 09:03:16 PM
If you intend to do this, please change the genesis block and remove the benchmarking code.  Change the default port number, also.


Title: Re: How to kick start a private bitcoin network?
Post by: RSantana on June 23, 2011, 09:07:08 PM
I'm interested in hearing how this works. Let us know if you get it working and what you had to do.


Title: Re: How to kick start a private bitcoin network?
Post by: zipxavier on June 23, 2011, 09:08:26 PM
Yes if there was an easy guide I'd be interested.


Title: Re: How to kick start a private bitcoin network?
Post by: MoonShadow on June 23, 2011, 11:18:12 PM
You are in pioneer territory.  There will be no guide until the pioneers have made one.


Title: Re: How to kick start a private bitcoin network?
Post by: Lord T on July 24, 2011, 07:56:22 PM
Sounds interesting. I was thinking of doing the same thing for a small local barter system.

Is the point to set up your own currency? Will the exchange rate be linked to Bitcoins or USD for example?