Прежде всего, не волнуйтесь. Я не намерен запустить 10000th жульничества монеты или любую монету в целом. Вместо этого я предпочел бы получить представление о внутренней работе крипто валюты.
Я экспериментировал с Х11 POW / POS монеты, которые до сих пор не было никакого testnet вообще, чтобы начать с. Читая документацию можно найти здесь и на Github, я сумел применить изменения, необходимые для исходного кода. Я успешно создал блок Genesis и теперь я пытаюсь пнуть testnet между ПК под управлением OpenSUSE 13.2 и виртуальной машине под управлением Mint 17,1.
Блок генезиса для testnet выглядит следующим образом
Код:
{
"гашиш" : "00000d4d0549912423730a89e05b8f096591d32795b1612a0abd5c3541904ddf",
"подтверждения" : 1,
"размер" : 155,
"высота" : 0,
"версия" : 1,
"merkleroot" : "a19abd6632650bde37a3feb35eef8ac6d1ffb70d5ce180b5e68b9eea13cb23ae",
"мята" : 0.00000000,
"время" : 1429024276,
"данное время" : 203625,
"биты" : "1f00ffff",
"трудность" : 0.00001526,
"blocktrust" : "10001",
"chaintrust" : "10001",
"флаги" : "доказательство правильности работы доли модификатора",
"proofhash" : "00000d4d0549912423730a89e05b8f096591d32795b1612a0abd5c3541904ddf",
"entropybit" : 1,
"модификатор" : "0000000000000000",
"modifierchecksum" : "0e00670b",
"Техас" : [
"a19abd6632650bde37a3feb35eef8ac6d1ffb70d5ce180b5e68b9eea13cb23ae"
]
}
"гашиш" : "00000d4d0549912423730a89e05b8f096591d32795b1612a0abd5c3541904ddf",
"подтверждения" : 1,
"размер" : 155,
"высота" : 0,
"версия" : 1,
"merkleroot" : "a19abd6632650bde37a3feb35eef8ac6d1ffb70d5ce180b5e68b9eea13cb23ae",
"мята" : 0.00000000,
"время" : 1429024276,
"данное время" : 203625,
"биты" : "1f00ffff",
"трудность" : 0.00001526,
"blocktrust" : "10001",
"chaintrust" : "10001",
"флаги" : "доказательство правильности работы доли модификатора",
"proofhash" : "00000d4d0549912423730a89e05b8f096591d32795b1612a0abd5c3541904ddf",
"entropybit" : 1,
"модификатор" : "0000000000000000",
"modifierchecksum" : "0e00670b",
"Техас" : [
"a19abd6632650bde37a3feb35eef8ac6d1ffb70d5ce180b5e68b9eea13cb23ae"
]
}
Блок генезиса по фактической mainnet выглядит следующим образом:
Код:
{
"гашиш" : "00000c639b0fbf250ba63c6ef2952dbb44bb1051324a27383b8a56fb833d8137",
"подтверждения" : 1403349,
"размер" : 155,
"высота" : 0,
"версия" : 1,
"merkleroot" : "18bf53ed0bbbc417c8e2d7993294dba71e1ba10697c9289c617ee02108bb197c",
"мята" : 0.00000000,
"время" : 1402346011,
"данное время" : 1912748,
"биты" : "1e0fffff",
"трудность" : 0.00024414,
"blocktrust" : "100001",
"chaintrust" : "100001",
"nextblockhash" : "0000014e0a7c56f23135b52a5af015a9b89266c4899d66039d65b0f80cc969a8",
"флаги" : "доказательство правильности работы доли модификатора",
"proofhash" : "00000c639b0fbf250ba63c6ef2952dbb44bb1051324a27383b8a56fb833d8137",
"entropybit" : 1,
"модификатор" : "0000000000000000",
"modifierchecksum" : "0e00670b",
"Техас" : [
"18bf53ed0bbbc417c8e2d7993294dba71e1ba10697c9289c617ee02108bb197c"
]
}
Я уверен, что эта часть для testnet в порядке."гашиш" : "00000c639b0fbf250ba63c6ef2952dbb44bb1051324a27383b8a56fb833d8137",
"подтверждения" : 1403349,
"размер" : 155,
"высота" : 0,
"версия" : 1,
"merkleroot" : "18bf53ed0bbbc417c8e2d7993294dba71e1ba10697c9289c617ee02108bb197c",
"мята" : 0.00000000,
"время" : 1402346011,
"данное время" : 1912748,
"биты" : "1e0fffff",
"трудность" : 0.00024414,
"blocktrust" : "100001",
"chaintrust" : "100001",
"nextblockhash" : "0000014e0a7c56f23135b52a5af015a9b89266c4899d66039d65b0f80cc969a8",
"флаги" : "доказательство правильности работы доли модификатора",
"proofhash" : "00000c639b0fbf250ba63c6ef2952dbb44bb1051324a27383b8a56fb833d8137",
"entropybit" : 1,
"модификатор" : "0000000000000000",
"modifierchecksum" : "0e00670b",
"Техас" : [
"18bf53ed0bbbc417c8e2d7993294dba71e1ba10697c9289c617ee02108bb197c"
]
}
Следующий шаг "Начало" это testnet и фактически создавать новые блоки. Для этого я использую мой компьютер и виртуальную машину.
На моем компьютере с IP 192.168.0.163, я бег обезглавленного демон бумажника со следующей конфигурацией:
Код:
Сервер = 1
rpcallowip = 192.168.0. *
слушать = 1
rpcuser = FirstInstance
rpcpassword = FirstInstancePassword
Порт = 33550
rpcport = 33551
ген = 1
testnet = 1
noirc = 1
rpcallowip = 192.168.0. *
слушать = 1
rpcuser = FirstInstance
rpcpassword = FirstInstancePassword
Порт = 33550
rpcport = 33551
ген = 1
testnet = 1
noirc = 1
Виртуальная машина имеет доступ к моей локальной сети с помощью моста и получил IP 192.168.0.206. Обе машины могут видеть друг друга. Это VM работает бумажник QT и сконфигурирован как
Код:
Сервер = 1
rpcallowip = 192.168.0. *
rpcuser = SecondInstance
rpcpassword = SecondInstancePassword
Порт = 33550
rpcport = 33551
ген = 1
testnet = 1
noirc = 1
подключения = 192.168.0.163: 33550
rpcallowip = 192.168.0. *
rpcuser = SecondInstance
rpcpassword = SecondInstancePassword
Порт = 33550
rpcport = 33551
ген = 1
testnet = 1
noirc = 1
подключения = 192.168.0.163: 33550
Я первый запустить демон на физической машине, а затем клиент QT на VM.
К сожалению, клиент QT (без головы имеет тот же эффект) не может подключиться к своему партнеру на физической машине и блоки остаются на 0.
Код:
Открытый LevelDB успешно
LoadBlockIndex (): hashBestChain = 00000d4d054991242373 высота = 0 трест = 65537 Дата = 04/14/2015 15:11:16
LoadBlockIndex (): синхронизировано контрольная точка 00000d4d0549912423730a89e05b8f096591d32795b1612a0abd5c3541904ddf
Проверка последних 0 блоков на уровне 1
индекс блока 4ms
Загрузка бумажник ...
nFileVersion = 1010000
Ключи: 101 открытого текста, 0 зашифрованы, 101 Вт / метаданных, 101 всего
бумажник 266ms
Загрузка адрес ...
Загруженные 0 адреса из peers.dat 0ms
mapBlockIndex.size () = 1
nBestHeight = 0
setKeyPool.size () = 100
mapWallet.size () = 0
mapAddressBook.size () = 1
ThreadRPCServer начал
DNS высев отключен
Совершенно загрузка
ThreadIRCSeed вышел
refreshWallet
ThreadSocketHandler начал
ThreadOpenAddedConnections начал
ThreadOpenAddedConnections вышел
ThreadOpenConnections начал
пытаясь соединение 192.168.0.163:33550 lastseen = 0,0hrs
ThreadMessageHandler начал
ThreadStakeMiner начал
Окрыленный 0 адреса в peers.dat 2ms
ipcThread начал
время соединения вышло
пытаясь соединение 192.168.0.163:33550 lastseen = 0,0hrs
время соединения вышло
пытаясь соединение 192.168.0.163:33550 lastseen = 0,0hrs
время соединения вышло
пытаясь соединение 192.168.0.163:33550 lastseen = 0,0hrs
время соединения вышло
LoadBlockIndex (): hashBestChain = 00000d4d054991242373 высота = 0 трест = 65537 Дата = 04/14/2015 15:11:16
LoadBlockIndex (): синхронизировано контрольная точка 00000d4d0549912423730a89e05b8f096591d32795b1612a0abd5c3541904ddf
Проверка последних 0 блоков на уровне 1
индекс блока 4ms
Загрузка бумажник ...
nFileVersion = 1010000
Ключи: 101 открытого текста, 0 зашифрованы, 101 Вт / метаданных, 101 всего
бумажник 266ms
Загрузка адрес ...
Загруженные 0 адреса из peers.dat 0ms
mapBlockIndex.size () = 1
nBestHeight = 0
setKeyPool.size () = 100
mapWallet.size () = 0
mapAddressBook.size () = 1
ThreadRPCServer начал
DNS высев отключен
Совершенно загрузка
ThreadIRCSeed вышел
refreshWallet
ThreadSocketHandler начал
ThreadOpenAddedConnections начал
ThreadOpenAddedConnections вышел
ThreadOpenConnections начал
пытаясь соединение 192.168.0.163:33550 lastseen = 0,0hrs
ThreadMessageHandler начал
ThreadStakeMiner начал
Окрыленный 0 адреса в peers.dat 2ms
ipcThread начал
время соединения вышло
пытаясь соединение 192.168.0.163:33550 lastseen = 0,0hrs
время соединения вышло
пытаясь соединение 192.168.0.163:33550 lastseen = 0,0hrs
время соединения вышло
пытаясь соединение 192.168.0.163:33550 lastseen = 0,0hrs
время соединения вышло
На физической машине, я возвращаюсь GetInfo каждые 30 секунд (с помощью "смотреть")
Код:
{
"версия" : "v1.1.0.0",
"protocolversion" : 60013,
"walletversion" : 60000,
"баланс" : 0.00000000,
"newmint" : 0.00000000,
"доля" : 0.00000000,
"блоки" : 0,
"офсет" : 0,
"moneysupply" : 0.00000000,
"связи" : 0,
"полномочие" : "",
"IP" : "0.0.0.0",
"трудность" : {
"доказательство правильности работы" : 0.00001526,
"корректуры из-акций" : 0.00001526
},
"testnet" : правда,
"keypoololdest" : 1429042310,
"keypoolsize" : 101,
"paytxfee" : 0.00001000,
"mininput" : 0.00000000,
"ошибки" : ""
}
"версия" : "v1.1.0.0",
"protocolversion" : 60013,
"walletversion" : 60000,
"баланс" : 0.00000000,
"newmint" : 0.00000000,
"доля" : 0.00000000,
"блоки" : 0,
"офсет" : 0,
"moneysupply" : 0.00000000,
"связи" : 0,
"полномочие" : "",
"IP" : "0.0.0.0",
"трудность" : {
"доказательство правильности работы" : 0.00001526,
"корректуры из-акций" : 0.00001526
},
"testnet" : правда,
"keypoololdest" : 1429042310,
"keypoolsize" : 101,
"paytxfee" : 0.00001000,
"mininput" : 0.00000000,
"ошибки" : ""
}
Что я контроль, чтобы сделать эту работу? Я не думаю, что мне нужно, чтобы открыть любой порт с IPTables на физической машине или сделать проброс, так как это все по локальной сети.
Хотя, я обеспокоен "IP" : "0.0.0.0",. Тот же клиент на mainnet дает возвращает свой публичный IP. Должен ли я связать клиент на физической машине с определенным IP?