| 
			| 
					
								| lapitsky (OP) 
								Member     Offline 
								Activity: 202 
								Merit: 27 
								Atom foundation
								
								
								
								
								
								   | 
								|  | April 17, 2019, 05:18:44 PM |  | 
 
 Всем привет, пишу свою крипту, дошел до фазы создания блоков. хочу изобрести велосипед и местами со своим блэкджеком. Подскажите толковый материал, а именно по принципу работы входов-выходов, как именно хранятся данные в блоках, скорость работы базы и какой принцип работы поиска в базе (на физическом носители или в памяти)? Буду признателен, если кто сталкивался с технической частью
 |  
						| 
 |  |  | 
| 
			| 
					
								| fxpc 
								Sr. Member       Offline 
								Activity: 1316 
								Merit: 420
								 
								KTO EC/\U HUKTO?
								
								
								
								
								
								   | 
								|  | April 17, 2019, 06:17:48 PMLast 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 PMLast 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 PMLast 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 PMLast 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: 1287 
								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: 3626 
								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: 3626 
								Merit: 1100
								     | 
								|  | April 23, 2019, 03:12:12 PMLast 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: 3626 
								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: 1287 
								OpenTrade - Open Source Cryptocurrency Exchange
								
								
								
								
								
								     | 
								|  | April 23, 2019, 07:09:02 PM |  | 
 
 получается мы ищем хеш с нулями в начале, потом переводим хеш в 265-бит, и проверяем, чтобы он был меньше таргет, тогда хеш валиден?   Хэш это 256 битное число Таргет это 256 битное число Если найденный хэш меньше или равен таргету, значит зашибись! |  
						| 
 |  |  | 
	|  |