lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
April 17, 2019, 05:18:44 PM |
|
Всем привет, пишу свою крипту, дошел до фазы создания блоков. хочу изобрести велосипед и местами со своим блэкджеком. Подскажите толковый материал, а именно по принципу работы входов-выходов, как именно хранятся данные в блоках, скорость работы базы и какой принцип работы поиска в базе (на физическом носители или в памяти)? Буду признателен, если кто сталкивался с технической частью
|
|
|
|
|
|
|
|
|
If you want to be a moderator, report many posts with accuracy. You will be noticed.
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
|
|
|
fxpc
Sr. Member
Offline
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
|
|
April 17, 2019, 06:17:48 PM Last edit: April 18, 2019, 02:08:35 PM by fxpc |
|
У тебя какие-то нубские вопросы для писателя своей крипты с блекджеком. Скорость работы базы зависит от используемого движка и пользовательского устройства. Чаще всего для крипты используют BerkeleyDB и LevelDB. Это nosql БД, то есть key-value хранилище в котором значение (value) присваивается ключу (хешу) и ищется исключительно по нему. С HDD, а тем более SSD эти БД практически на любом конфиге легко справляются с сотнями тысяч, а то и миллионом PUT/GET операций в секунду (при value = 100 байт). http://www.lmdb.tech/bench/microbench/benchmark.html
|
|
|
|
Snasey
Jr. Member
Offline
Activity: 87
Merit: 1
|
|
April 18, 2019, 01:10:51 PM Last edit: April 18, 2019, 01:45:37 PM by Snasey |
|
Если определился со стэком, найди "лучшие практики" крипты на нем, затем изучай его код на гитхаб. Все есть в открытом доступе. Мы таким образом и двигались при разработке своей платформы.
P.s. в скором времени будем публиковать по нашей платформе(скорее не платформа а framework*) материалы и туториалы. Хотим сделать её проще чем эфир (в плане разработки СК), но существенно функциональнее и гибче - вероятно может заинтересовать, как пример для разбора. *
|
|
|
|
rolik2001
|
|
April 19, 2019, 06:37:54 PM |
|
А есть смысл этого блокчеина ? Можно использовать же готовые решение по типу еоса. Кстате попробуйте форкнуть биток или еще любую монету может будет легче разбиратся в работе бч.
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
April 21, 2019, 04:00:52 PM |
|
У тебя какие-то нубские вопросы для писателя своей крипты с блекджеком. Скорость работы базы зависит от используемого движка и пользовательского устройства. Чаще всего для крипты используют BerkeleyDB и LevelDB. Это nosql БД, то есть key-value хранилище в котором значение (value) присваивается ключу (хешу) и ищется исключительно по нему. С HDD, а тем более SSD эти БД практически на любом конфиге легко справляются с сотнями тысяч, а то и миллионом PUT/GET операций в секунду (при value = 100 байт). http://www.lmdb.tech/bench/microbench/benchmark.htmlСпасибо Я не про базы спрашивал, а про принцип хранения в базе, в первую очередь сам принцип работы входов-выходов. Я использую как раз redis и знаю, что это такое. Перефразирую вопрос, где можно почитать о самом принципе работы входов-выходов. А есть смысл этого блокчеина ? Можно использовать же готовые решение по типу еоса. Кстате попробуйте форкнуть биток или еще любую монету может будет легче разбиратся в работе бч.
Я пишу на питоне, поэтому будет тяжело разгребать С код. проще написать базовый функционал самому. А так смысл есть писать свой блокчейн, та как есть идеи по новому алгоритму консенсуса. Если определился со стэком, найди "лучшие практики" крипты на нем, затем изучай его код на гитхаб. Все есть в открытом доступе. Мы таким образом и двигались при разработке своей платформы.
P.s. в скором времени будем публиковать по нашей платформе(скорее не платформа а framework*) материалы и туториалы. Хотим сделать её проще чем эфир (в плане разработки СК), но существенно функциональнее и гибче - вероятно может заинтересовать, как пример для разбора. *
Фреймворк для блокчена это очень хорошая идея
|
|
|
|
ligor
Full Member
Offline
Activity: 1246
Merit: 138
Hodl DeepOnion
|
|
April 21, 2019, 04:38:35 PM |
|
Я пишу на питоне, поэтому будет тяжело разгребать С код. проще написать базовый функционал самому. А так смысл есть писать свой блокчейн, та как есть идеи по новому алгоритму консенсуса.
По запросу питон и биткоин выдает почти 4000 ссылок, наверняка среди них не одна реализация на нем. Кстати, по первой же идет книга с описанием работы биткоина https://github.com/search?l=Python&q=bitcoin&type=Repositories
|
|
|
|
rolik2001
|
|
April 21, 2019, 04:49:58 PM |
|
А есть смысл этого блокчеина ? Можно использовать же готовые решение по типу еоса. Кстате попробуйте форкнуть биток или еще любую монету может будет легче разбиратся в работе бч.
Я пишу на питоне, поэтому будет тяжело разгребать С код. проще написать базовый функционал самому. А так смысл есть писать свой блокчейн, та как есть идеи по новому алгоритму консенсуса. Фреймворк для блокчена это очень хорошая идея так не все бч же написанны на С, а если их нету то возможно есть какие то подводные камни.
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
April 21, 2019, 06:51:36 PM Last edit: April 21, 2019, 07:02:43 PM by lapitsky |
|
Спасибо, буду изучать upd: для питона 14 проектов, но это скелеты работы блокчейна, причем очень утрированные. что давно уже реализовано у меня. нет работы конкретно по самому принципу входов выходов. буду значит курить сам биток, либо книгу
|
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
April 22, 2019, 05:04:55 PM Last edit: April 22, 2019, 05:19:38 PM by lapitsky |
|
https://bitcoin.org/en/developer-reference#block-headersвот еще хороший материал, если кому интересно не могу понять только, какой смысл поля nBit, для высчитывая сложности nonce?описание выглядит так An encoded version of the target threshold this block’s header hash must be less than or equal to. See the nBits format described below.https://bitcoin.org/en/developer-reference#target-nbitsесть еще на русском, но ничего не понятно Как я уже написал выше, весь майнинг сводится к тому, чтобы найти хэш блока меньше числа, называемого target. В структуре блока это число записывается в поле bits, например для блока #277,316, target равнялся 1903a30c.
$ bitcoin-cli getblock 0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4 { "hash" : "0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4", "confirmations" : 35561, "size" : 218629, "height" : 277316, "version" : 2, "merkleroot" : "c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e", "tx" : ["d5ada064c6417ca25c4308bd158c34b77e1c0eca2a73cda16c737e7424afba2f", 418 more transactions], "time" : 1388185914, "nonce" : 924591752, "bits" : "1903a30c", // Here it's "difficulty" : 1180923195.25802612, "chainwork" : "000000000000000000000000000000000000000000000934695e92aaf53afa1a", "previousblockhash" : "0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569", "nextblockhash" : "000000000000000010236c269dd6ed714dd5db39d36b33959079d78dfd431ba7" }
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
April 22, 2019, 06:29:06 PM |
|
https://en.bitcoin.it/wiki/Difficultybits это компактное представление target. Можно так написать target = target_from_bits(bits); target (цель) это 256 битное число. Чем меньше это число, тем больше сложность. Формула перевода невероятно сложная, но я ее тут приведу. Приготовьтесь: difficulty = target_from_bits(0x1d00ffff) / target
|
|
|
|
TTozetiv
Newbie
Offline
Activity: 24
Merit: 1
|
|
April 23, 2019, 12:04:42 PM |
|
Всем привет, пишу свою крипту, дошел до фазы создания блоков. хочу изобрести велосипед и местами со своим блэкджеком. Подскажите толковый материал, а именно по принципу работы входов-выходов, как именно хранятся данные в блоках, скорость работы базы и какой принцип работы поиска в базе (на физическом носители или в памяти)? Буду признателен, если кто сталкивался с технической частью
Как-то все сумбурно, начините с основ прочитайте книги такие как 1) Как деньги обрели свободу How Money Got Free есть на русском языке. Отрывки из его книги публиковались во многих изданиях, в том числе, в The Atlantic, The New Yorker, American Banker и Avaunt. 2) Технология блокчейн — то, что движет финансовой революцией сегодня 3) Блокчейн для бизнеса 4) Революция блокчейн 5) Биткойн для чайников Книжки очень интересные и дают полное познание процессов
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
April 23, 2019, 01:27:57 PM |
|
https://en.bitcoin.it/wiki/Difficultybits это компактное представление target. Можно так написать target = target_from_bits(bits); target (цель) это 256 битное число. Чем меньше это число, тем больше сложность. Формула перевода невероятно сложная, но я ее тут приведу. Приготовьтесь: difficulty = target_from_bits(0x1d00ffff) / target сложность определяется количеством нулей в хеше, не могу понять, число difficulty на выходе будет равно количеству нулей?
|
|
|
|
neiros
Legendary
Offline
Activity: 3500
Merit: 1100
|
|
April 23, 2019, 02:13:38 PM |
|
difficulty = target_from_bits(0x1d00ffff) / target
сложность определяется количеством нулей в хеше, не могу понять, число difficulty на выходе будет равно количеству нулей? Судя по формуле: difficulty = количеству таких 0x1d00ffff (00000000ffff0000000000000000000000000000000000000000000000000000) попугаев. Другими словами никому это число не нужно. Главное это target - величина 265-битного числа, с которым сравнивается хеш блока. https://ss-iqr.blogspot.com/2018/12/difficulty.html
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
April 23, 2019, 02:50:33 PM |
|
толковая статья, но не могу принципа работы уловить, там написано: Хеш блока может быть каким угодно, но не меньше 265-битного числа значения таргета, например, такого: 0000002cd2130000000000000000000000000000000000000000000000000000 Валидный хеш блока биткоина или подобных криптовалют при таком таргете может бить таким 0000002cd2107f99fb83761bdb34a4a86ca1acb711a3c6082acb7af567960ef3 или таким 00000000b7082acb7af5672cd21b7f98a1916c3c61a60ef3a9fb83761bdb344a или таким и т.п. 000000000000000000000a4ac3761bdb321b7f98b7af5672c1a3c6f8b6ca196f почему таргете в начале 6 нулей, а в внизу написано, что валидны хеши с большим количеством нулей?
|
|
|
|
neiros
Legendary
Offline
Activity: 3500
Merit: 1100
|
|
April 23, 2019, 03:12:12 PM Last edit: April 23, 2019, 03:23:40 PM by neiros |
|
толковая статья, но не могу принципа работы уловить, там написано: Хеш блока может быть каким угодно, но не меньше больше 265-битного числа значения таргета, например, такого: 0000002cd2130000000000000000000000000000000000000000000000000000 Валидный хеш блока биткоина или подобных криптовалют при таком таргете может бить таким 0000002cd2107f99fb83761bdb34a4a86ca1acb711a3c6082acb7af567960ef3 или таким 00000000b7082acb7af5672cd21b7f98a1916c3c61a60ef3a9fb83761bdb344a или таким и т.п. 000000000000000000000a4ac3761bdb321b7f98b7af5672c1a3c6f8b6ca196f почему таргете в начале 6 нулей, а в внизу написано, что валидны хеши с большим количеством нулей? Чем больше нулей в начале, тем меньше 265-битное число. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - максимальное 00000000000000000000000000000000ffffffffffffffffffffffffffffffff - среднее 0000000000000000000000000000000000000000000000000000000000000000 - минимальное Все те 265-битные числа меньше этого таргета - 0000002cd2130000000000000000000000000000000000000000000000000000 Любой хеш меньше таргета будет валидным. PS. ошибка в статье нашлась надо будет исправить.
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
April 23, 2019, 04:08:05 PM |
|
Чем больше нулей в начале, тем меньше 265-битное число. ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - максимальное 00000000000000000000000000000000ffffffffffffffffffffffffffffffff - среднее 0000000000000000000000000000000000000000000000000000000000000000 - минимальное
Все те 265-битные числа меньше этого таргета - 0000002cd2130000000000000000000000000000000000000000000000000000 Любой хеш меньше таргета будет валидным.
я не понял а как он определяет, что меньше этого таргета? он переводит его в десятичные и сравнивает? или как происходит сравнение?
|
|
|
|
neiros
Legendary
Offline
Activity: 3500
Merit: 1100
|
|
April 23, 2019, 04:31:00 PM |
|
а как он определяет, что меньше этого таргета? он переводит его в десятичные и сравнивает? или как происходит сравнение?
Ничего не нужно переводить. Просто сравниваются два 265-битных числа. Что в десятичном, что в каком ином формате это те же самые числа - одно больше, другое меньше. if (thash <= hashTarget) https://github.com/neiros/---TTC--TDC---/blob/TDC/src/miner.cpp#L779
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
April 23, 2019, 05:51:06 PM |
|
получается мы ищем хеш с нулями в начале, потом переводим хеш в 265-бит, и проверяем, чтобы он был меньше таргет, тогда хеш валиден?
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
April 23, 2019, 07:09:02 PM |
|
получается мы ищем хеш с нулями в начале, потом переводим хеш в 265-бит, и проверяем, чтобы он был меньше таргет, тогда хеш валиден? Хэш это 256 битное число Таргет это 256 битное число Если найденный хэш меньше или равен таргету, значит зашибись!
|
|
|
|
|