Bitcoin Forum
May 02, 2024, 08:57:24 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Материал по блокчейну, подскажите  (Read 401 times)
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
April 17, 2019, 05:18:44 PM
 #1

Всем привет, пишу свою крипту, дошел до фазы создания блоков. хочу изобрести велосипед и местами со своим блэкджеком.
Подскажите толковый материал, а именно по принципу работы входов-выходов, как именно хранятся данные в блоках, скорость работы базы и какой принцип работы поиска в базе (на физическом носители или в памяти)? Буду признателен, если кто сталкивался с технической частью

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
1714683444
Hero Member
*
Offline Offline

Posts: 1714683444

View Profile Personal Message (Offline)

Ignore
1714683444
Reply with quote  #2

1714683444
Report to moderator
1714683444
Hero Member
*
Offline Offline

Posts: 1714683444

View Profile Personal Message (Offline)

Ignore
1714683444
Reply with quote  #2

1714683444
Report to moderator
1714683444
Hero Member
*
Offline Offline

Posts: 1714683444

View Profile Personal Message (Offline)

Ignore
1714683444
Reply with quote  #2

1714683444
Report to moderator
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.
1714683444
Hero Member
*
Offline Offline

Posts: 1714683444

View Profile Personal Message (Offline)

Ignore
1714683444
Reply with quote  #2

1714683444
Report to moderator
1714683444
Hero Member
*
Offline Offline

Posts: 1714683444

View Profile Personal Message (Offline)

Ignore
1714683444
Reply with quote  #2

1714683444
Report to moderator
1714683444
Hero Member
*
Offline Offline

Posts: 1714683444

View Profile Personal Message (Offline)

Ignore
1714683444
Reply with quote  #2

1714683444
Report to moderator
fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
April 17, 2019, 06:17:48 PM
Last edit: April 18, 2019, 02:08:35 PM by fxpc
 #2

У тебя какие-то нубские вопросы для писателя своей крипты с блекджеком. Скорость работы базы зависит от используемого движка и пользовательского устройства. Чаще всего для крипты используют BerkeleyDB и LevelDB. Это nosql БД, то есть key-value хранилище в котором значение (value) присваивается ключу (хешу) и ищется исключительно по нему. С HDD, а тем более SSD эти БД практически на любом конфиге легко справляются с сотнями тысяч, а то и миллионом PUT/GET операций в секунду (при value = 100 байт).
http://www.lmdb.tech/bench/microbench/benchmark.html

Snasey
Jr. Member
*
Offline Offline

Activity: 87
Merit: 1


View Profile
April 18, 2019, 01:10:51 PM
Last edit: April 18, 2019, 01:45:37 PM by Snasey
 #3

Если определился со стэком, найди "лучшие практики" крипты на нем, затем изучай его код на гитхаб. Все есть в открытом доступе.
Мы таким образом и двигались при разработке своей платформы.

P.s. в скором времени будем публиковать по нашей платформе(скорее не платформа а framework*) материалы и туториалы. Хотим сделать её проще чем эфир (в плане разработки СК), но существенно функциональнее и гибче - вероятно может заинтересовать, как пример для разбора.
*
rolik2001
Hero Member
*****
Offline Offline

Activity: 1232
Merit: 503


View Profile
April 19, 2019, 06:37:54 PM
 #4

А есть смысл этого блокчеина ? Можно использовать же готовые решение по типу еоса. Кстате попробуйте форкнуть биток или еще любую монету может будет легче разбиратся в работе бч.
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
April 21, 2019, 04:00:52 PM
 #5

У тебя какие-то нубские вопросы для писателя своей крипты с блекджеком. Скорость работы базы зависит от используемого движка и пользовательского устройства. Чаще всего для крипты используют BerkeleyDB и LevelDB. Это nosql БД, то есть key-value хранилище в котором значение (value) присваивается ключу (хешу) и ищется исключительно по нему. С HDD, а тем более SSD эти БД практически на любом конфиге легко справляются с сотнями тысяч, а то и миллионом PUT/GET операций в секунду (при value = 100 байт).
http://www.lmdb.tech/bench/microbench/benchmark.html

Спасибо
Я не про базы спрашивал, а про принцип хранения в базе, в первую очередь сам принцип работы входов-выходов. Я использую как раз redis и знаю, что это такое.

Перефразирую вопрос, где можно почитать о самом принципе работы входов-выходов.

А есть смысл этого блокчеина ? Можно использовать же готовые решение по типу еоса. Кстате попробуйте форкнуть биток или еще любую монету может будет легче разбиратся в работе бч.

Я пишу на питоне, поэтому будет тяжело разгребать С код. проще написать базовый функционал самому. А так смысл есть писать свой блокчейн, та как есть идеи по новому алгоритму консенсуса.

Если определился со стэком, найди "лучшие практики" крипты на нем, затем изучай его код на гитхаб. Все есть в открытом доступе.
Мы таким образом и двигались при разработке своей платформы.

P.s. в скором времени будем публиковать по нашей платформе(скорее не платформа а framework*) материалы и туториалы. Хотим сделать её проще чем эфир (в плане разработки СК), но существенно функциональнее и гибче - вероятно может заинтересовать, как пример для разбора.
*

Фреймворк для блокчена это очень хорошая идея

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
April 21, 2019, 04:38:35 PM
 #6


Я пишу на питоне, поэтому будет тяжело разгребать С код. проще написать базовый функционал самому. А так смысл есть писать свой блокчейн, та как есть идеи по новому алгоритму консенсуса.
По запросу питон и биткоин выдает почти 4000 ссылок, наверняка среди них не одна реализация на нем. Кстати, по первой же идет книга с описанием работы биткоина https://github.com/search?l=Python&q=bitcoin&type=Repositories

rolik2001
Hero Member
*****
Offline Offline

Activity: 1232
Merit: 503


View Profile
April 21, 2019, 04:49:58 PM
 #7


А есть смысл этого блокчеина ? Можно использовать же готовые решение по типу еоса. Кстате попробуйте форкнуть биток или еще любую монету может будет легче разбиратся в работе бч.

Я пишу на питоне, поэтому будет тяжело разгребать С код. проще написать базовый функционал самому. А так смысл есть писать свой блокчейн, та как есть идеи по новому алгоритму консенсуса.


Фреймворк для блокчена это очень хорошая идея
так не все бч же написанны на С, а если их нету то возможно есть какие то подводные камни.
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
April 21, 2019, 06:51:36 PM
Last edit: April 21, 2019, 07:02:43 PM by lapitsky
 #8

По запросу питон и биткоин выдает почти 4000 ссылок, наверняка среди них не одна реализация на нем. Кстати, по первой же идет книга с описанием работы биткоина https://github.com/search?l=Python&q=bitcoin&type=Repositories
Спасибо, буду изучать

upd: для питона 14 проектов, но это скелеты работы блокчейна, причем очень утрированные. что давно уже реализовано у меня. нет работы конкретно по самому принципу входов выходов. буду значит курить сам биток, либо книгу


⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
April 22, 2019, 06:36:35 AM
Merited by lapitsky (1)
 #9

Я не про базы спрашивал, а про принцип хранения в базе, в первую очередь сам принцип работы входов-выходов. Я использую как раз redis и знаю, что это такое.

Перефразирую вопрос, где можно почитать о самом принципе работы входов-выходов.

https://bitcoin.stackexchange.com/questions/28168/what-are-the-keys-used-in-the-blockchain-leveldb-ie-what-are-the-keyvalue-pair

https://habr.com/ru/post/319862/
https://habr.com/ru/post/319860/

lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
April 22, 2019, 05:04:55 PM
Last edit: April 22, 2019, 05:19:38 PM by lapitsky
 #10

Я не про базы спрашивал, а про принцип хранения в базе, в первую очередь сам принцип работы входов-выходов. Я использую как раз redis и знаю, что это такое.

Перефразирую вопрос, где можно почитать о самом принципе работы входов-выходов.

https://bitcoin.stackexchange.com/questions/28168/what-are-the-keys-used-in-the-blockchain-leveldb-ie-what-are-the-keyvalue-pair

https://habr.com/ru/post/319862/
https://habr.com/ru/post/319860/

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"
}

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
April 22, 2019, 06:29:06 PM
 #11

https://en.bitcoin.it/wiki/Difficulty

bits это компактное представление target. Можно так написать
target = target_from_bits(bits);

target (цель) это 256 битное число. Чем меньше это число, тем больше сложность. Формула перевода невероятно сложная, но я ее тут приведу.

Приготовьтесь:

difficulty = target_from_bits(0x1d00ffff) / target

 Wink

OpenTrade - Open Source Cryptocurrency Exchange
TTozetiv
Newbie
*
Offline Offline

Activity: 24
Merit: 1


View Profile
April 23, 2019, 12:04:42 PM
Merited by botatrada (1)
 #12

Всем привет, пишу свою крипту, дошел до фазы создания блоков. хочу изобрести велосипед и местами со своим блэкджеком.
Подскажите толковый материал, а именно по принципу работы входов-выходов, как именно хранятся данные в блоках, скорость работы базы и какой принцип работы поиска в базе (на физическом носители или в памяти)? Буду признателен, если кто сталкивался с технической частью
Как-то все сумбурно, начините с основ прочитайте книги такие как
1) Как деньги обрели свободу How Money Got Free есть на русском языке. Отрывки из его книги публиковались во многих изданиях, в том числе, в The Atlantic, The New Yorker, American Banker и Avaunt.
2) Технология блокчейн — то, что движет финансовой революцией сегодня
3) Блокчейн для бизнеса
4) Революция блокчейн
5) Биткойн для чайников

Книжки очень интересные и дают полное познание процессов
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
April 23, 2019, 01:27:57 PM
 #13

https://en.bitcoin.it/wiki/Difficulty

bits это компактное представление target. Можно так написать
target = target_from_bits(bits);

target (цель) это 256 битное число. Чем меньше это число, тем больше сложность. Формула перевода невероятно сложная, но я ее тут приведу.

Приготовьтесь:

difficulty = target_from_bits(0x1d00ffff) / target

 Wink

сложность определяется количеством нулей в хеше, не могу понять, число difficulty на выходе будет равно количеству нулей?

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 23, 2019, 02:13:38 PM
 #14


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 Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
April 23, 2019, 02:50:33 PM
 #15


толковая статья, но не могу принципа работы уловить, там написано:
Quote
Хеш блока может быть каким угодно, но не меньше 265-битного числа значения таргета, например, такого:
0000002cd2130000000000000000000000000000000000000000000000000000
Валидный хеш блока биткоина или подобных криптовалют при таком таргете может бить таким
0000002cd2107f99fb83761bdb34a4a86ca1acb711a3c6082acb7af567960ef3
или таким
00000000b7082acb7af5672cd21b7f98a1916c3c61a60ef3a9fb83761bdb344a
или таким и т.п.
000000000000000000000a4ac3761bdb321b7f98b7af5672c1a3c6f8b6ca196f

почему  таргете в начале 6 нулей, а в внизу написано, что валидны хеши с большим количеством нулей?

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 23, 2019, 03:12:12 PM
Last edit: April 23, 2019, 03:23:40 PM by neiros
 #16


толковая статья, но не могу принципа работы уловить, там написано:
Quote
Хеш блока может быть каким угодно, но не меньше больше 265-битного числа значения таргета, например, такого:
0000002cd2130000000000000000000000000000000000000000000000000000
Валидный хеш блока биткоина или подобных криптовалют при таком таргете может бить таким
0000002cd2107f99fb83761bdb34a4a86ca1acb711a3c6082acb7af567960ef3
или таким
00000000b7082acb7af5672cd21b7f98a1916c3c61a60ef3a9fb83761bdb344a
или таким и т.п.
000000000000000000000a4ac3761bdb321b7f98b7af5672c1a3c6f8b6ca196f

почему  таргете в начале 6 нулей, а в внизу написано, что валидны хеши с большим количеством нулей?

Чем больше нулей в начале, тем меньше 265-битное число.
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - максимальное
00000000000000000000000000000000ffffffffffffffffffffffffffffffff - среднее
0000000000000000000000000000000000000000000000000000000000000000 - минимальное

Все те 265-битные числа меньше этого таргета - 0000002cd2130000000000000000000000000000000000000000000000000000
Любой хеш меньше таргета будет валидным.



PS. ошибка в статье нашлась Roll Eyes надо будет исправить.

lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
April 23, 2019, 04:08:05 PM
 #17

Чем больше нулей в начале, тем меньше 265-битное число.
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - максимальное
00000000000000000000000000000000ffffffffffffffffffffffffffffffff - среднее
0000000000000000000000000000000000000000000000000000000000000000 - минимальное

Все те 265-битные числа меньше этого таргета - 0000002cd2130000000000000000000000000000000000000000000000000000
Любой хеш меньше таргета будет валидным.


я не понял  Undecided

а как он определяет, что меньше этого таргета? он переводит его в десятичные и сравнивает?  или как происходит сравнение?

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 23, 2019, 04:31:00 PM
 #18

а как он определяет, что меньше этого таргета? он переводит его в десятичные и сравнивает?  или как происходит сравнение?

Ничего не нужно переводить. Просто сравниваются два 265-битных числа.
Что в десятичном, что в каком ином формате это те же самые числа - одно больше, другое меньше.

if (thash <= hashTarget)

https://github.com/neiros/---TTC--TDC---/blob/TDC/src/miner.cpp#L779

lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
April 23, 2019, 05:51:06 PM
 #19


Ничего не нужно переводить. Просто сравниваются два 265-битных числа.
Что в десятичном, что в каком ином формате это те же самые числа - одно больше, другое меньше.

if (thash <= hashTarget)

https://github.com/neiros/---TTC--TDC---/blob/TDC/src/miner.cpp#L779


получается мы ищем хеш с нулями в начале, потом переводим хеш в 265-бит, и проверяем, чтобы он был меньше таргет, тогда хеш валиден?  Lips sealed

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
April 23, 2019, 07:09:02 PM
 #20

получается мы ищем хеш с нулями в начале, потом переводим хеш в 265-бит, и проверяем, чтобы он был меньше таргет, тогда хеш валиден?  Lips sealed


Хэш это 256 битное число
Таргет это 256 битное число

Если найденный хэш меньше или равен таргету, значит зашибись!

OpenTrade - Open Source Cryptocurrency Exchange
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!