Bitcoin Forum

Local => Кодеры => Topic started by: lapitsky on May 17, 2018, 09:54:58 PM



Title: Подскажите по плану разработки
Post by: lapitsky on May 17, 2018, 09:54:58 PM
Разрабатываю свою криптовалюту, подскажите, правильно ли я мыслю:
Правильный ли ход моей разработки?
  • перевод от клиента через браузер, отправляю данные на ноду через websocket
  • нода получает данные от браузера через websocket, создает поток asyncio(например с использование aiohttp в python), в потоке выполняет обработку транзакции и записывает в базу данных
  • эта нода отправляет другим нодам данные с использование zeroMQ
Правильно ли использовать асинхронные потоки? или можно делать все в одном потоке?


Title: Re: Подскажите по плану разработки
Post by: tmtdev on May 18, 2018, 09:22:26 AM
В каком блокчейне планируется валюта?


Title: Re: Подскажите по плану разработки
Post by: ferumflex on May 18, 2018, 03:26:37 PM
Если речь идет о криптовалюте то думаю не совсем правильно
1. Подключаешься к ноде и добавляешь свою транзакцию в пул незавершенных транзакций
2. Кто то из нод майнит ее (POS или POW)
3. Твоя нода получает новый блок и сохраняет эту транзакцию в базе данных

Вопросы подключения через websocket или нет, это уже второстепенное.


Title: Re: Подскажите по плану разработки
Post by: lapitsky on May 18, 2018, 10:11:38 PM
В каком блокчейне планируется валюта?

Cкорее всего гибрид POW - в этой теме рассуждаю насчет этого https://bitcointalk.org/index.php?topic=3867866.0 (https://bitcointalk.org/index.php?topic=3867866.0)

Если речь идет о криптовалюте то думаю не совсем правильно
1. Подключаешься к ноде и добавляешь свою транзакцию в пул незавершенных транзакций
2. Кто то из нод майнит ее (POS или POW)
3. Твоя нода получает новый блок и сохраняет эту транзакцию в базе данных

Вопросы подключения через websocket или нет, это уже второстепенное.

Спасибо!
В моем случае нод будет мало, так как блокчейн будет использоваться для нужд компании и разделен допустим на 10 компьютеров. Поэтому POW должен быть практически моментальным, так как в цепочки будут паковаться каждая отдельная транзакция, а не тысячи, как в блокчейн биткоин.

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


Title: Re: Подскажите по плану разработки
Post by: kzv on May 21, 2018, 05:18:22 AM
Я вот не могу разобраться с потоками. В какой момент их использовать. Я правильно понимаю, что отдав транзакцию ноде, она создает асинхронный поток, в которой уже майнит ее и паралельно слушает, не пришла ли еще одна транзакция?

"Асинхронный поток" это что-то новое  :)

Программа может работать либо многопоточно, либо асинхронно. Мое глубокое убеждение: потоки-зло, избегайте использования потоков.

Майнинг это хэширование списка транзакций. Результат хэширования непредсказуем. Поэтому для результата хэширования без разницы - помещаете вы в блок для следующего шага майнинга новую транзакцию или не помещаете... Зато для скорости прохождения транзакций лучше, если майнеры в блок помещают весь пул транзакций.