Пользовательский альткоин не будет синхронизироваться с узлом и не будет принимать подключение к майнеру.

Я разветвил источник BlackCoin, изменил порты, сгенерировал блок генезиса, merkle, бла-бла-бла. Я установил узел на сервере DigitalOcean и скомпилировал демон монеты там, а также на моей локальной машине. Два монетных демона распознают друг друга, я поместил addnode в файл conf, а также добавил rpcuser, rpcpassword и rpcport в каждый файл conf.

Моя программа coin-qt на моей локальной машине распознает, что у нее есть 1 подключение к сети, но по какой-то причине не прекращает синхронизацию, даже несмотря на то, что был создан только блок генезиса. Все равно пишет рассинхрон. Демон моего сервера все еще синхронизируется.

Когда я вызываю getwork, они оба возвращают значения. Вот что возвращается:

{
"midstate" : "79f67436791f93f3eadc9926a8578baddfe15eebe894a6a59ba11fdfb889cef3",
"data" : "00000006edc7bd4e9e7c221bfcc052f25c28c6483d77e1c04ddce735d5a04ba000000ff977168febeac231c7109f85dc43cd9461b7763f9057bb3983622ff0986885b7d9539a6a001e0fffff00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000",
"hash1" : "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000",
"target" : "000000000000000000000000000000000000000000000000000000ffff0f0000"
}

Если я попытаюсь вызвать майнера и указать ему либо на локальный кошелек, либо на ноду, вот так:

./minerd --url=http://127.0.0.1:14632 -u user -p password

или

./minerd --url={My Node IP}:14632 -u username -p mypassword

мне выдает ошибку!

Конкретно:

для локального клиента:

Unrecognized block version: 6
json_rpc_call failed, retry after 30 seconds

и узел:

HTTP request failed; connect() timed out!
json_rpc_call failed, retry after 30 seconds

Есть идеи? Я очень близок и хотел бы понять это!

РЕДАКТИРОВАТЬ. Я зашел в main.h и изменил значение static const int CURRENT_VERSIONс 6 на 1. Похоже, это решило проблему json. Что касается сервера, я просто забыл открыть порт rpc, а не только порт.

Однако моя клиентская программа *coin-qt постоянно говорит «не синхронизировано» и просто говорит «догоняю». скачал 0 блоков истории транзакций. последний блок был 2 дня назад. Это блок генезиса.

Поскольку BlackCoin использует стандартный алгоритм шифрования, я думаю, майнер сможет добывать эту монету. Кажется, это работает хорошо, но я получаю все «боос» при майнинге.

Это вывод на моем ноутбуке:

@crypto:~$ minerd -a scrypt --url=http://{{node ip}}:14632 -u user -p {{somepass}} --coinbase-addr={{address}} [2014-06-13 12:43:11] 
[2014-06-13 12:43:11] Binding thread 0 to cpu 0
[2014-06-13 12:43:11] 2 miner threads started, using 'scrypt' algorithm.
[2014-06-13 12:43:11] Binding thread 1 to cpu 1
[2014-06-13 12:43:12] thread 0: 4104 hashes, 4.76 khash/s
[2014-06-13 12:43:12] thread 1: 4104 hashes, 4.52 khash/s
...
[2014-06-13 12:45:58] thread 1: 756 hashes, 4.60 khash/s
[2014-06-13 12:45:58] accepted: 0/1 (0.00%), 9.33 khash/s (booooo)
[2014-06-13 12:46:02] thread 1: 18408 hashes, 4.71 khash/s

Я не понимаю, почему он ничего не принимает. Эта монета использует scrypt, как и BlackCoin. Есть идеи?

github.com/anengineerinchina/TestCoin Я зашел в main.h и изменил версию блока в классе CBlock с 6 на 1. Minerd вроде работает, но кошелек почему-то не перестает синхронизироваться.
добавил обновление
Хорошо, что-то очень странно. На моем локальном coin-qt теперь работает майнерд. Я использовал этот запрос: ./minerd --url=127.0.0.1:{{rpcport}} --userpass=user::{{pass}} -P -D --coinbase-addr={{mylocaladdress}} работает и находит блоки. Мой узел также улавливает эти изменения и синхронизируется. Тем не менее, я получил все «боос» в майнере, перекомпилировал, и по какой-то причине это сработало? Так странно. Сейчас я собираюсь перекомпилировать код моего узла, чтобы посмотреть, будет ли он работать, так как я все еще получаю от него отказы.

Ответы (1)

Хотя он довольно старый, я подумал, что должен хотя бы поделиться своими знаниями об этом - хотя он показывает «0» блоков истории транзакций и постоянно заявляет, что он догоняет, однако он актуален - в зависимости от обстоятельств. Во-первых, вам нужно открыть «checkpoints.cpp» и удалить все контрольные точки в файле (они будут где-то в первых 20 строках, это говорит само за себя), и создать одну контрольную точку в 0 с хешем генезисного блока — контрольно-пропускной пункт блока генезиса. После того, как вы это сделаете, пересоберите оба клиента, подключите их и вместо использования майнера (или его эквивалента) вместо этого используйте «setgenerate» через консоль как минимум для 1 блока. После этого 1 блока вы сможете использовать майнерд (или эквивалент). Надеюсь, это поможет вам