Bitcoin Forum

Local => Кодеры => Topic started by: amaclin on January 20, 2017, 10:09:58 AM



Title: Синтаксический сахар
Post by: amaclin on January 20, 2017, 10:09:58 AM
Залез тут в пул-реквесты биткойна и охуел мальца
Я, конечно, понимаю, язык си++ совершенствуется и улучшается...

Но я нихера не понимаю.
Зачем менять шило на мыло?

Возьмем коммит
https://github.com/bitcoin/bitcoin/pull/9557/commits/0eb2e5c1a4a8ef4a45c6e590eab6e87527405025

Давайте бля, везде конструкцию char(0) заменим на более православную static_cast<char>(0)
Это вам так код напичканный скобочками и служебными словами читать проще стало?
или в компиляторе что-то поменялось? Ребяты, я уж лучше напишу по рабоче-крестьянски '\0'

И будет код работать хоть в си, хоть в си++11, хоть в си++99



Title: Re: Синтаксический сахар
Post by: kzv on January 20, 2017, 11:12:18 AM
Случайно не это ищешь?
https://github.com/bitcoin/bitcoin/releases/tag/v0.1.5

или
https://github.com/bitcoin/bitcoin/tree/e071a3f6c06f41068ad17134189a4ac3073ef76b


Title: Re: Синтаксический сахар
Post by: amaclin on January 20, 2017, 11:19:41 AM
Не, а зачем?
Я вообще ничего конкретного не искал, просто посмотрел чем биткойн-девелоперы заняты

Вот здесь человек нашел в коде четыре точки-с-запятой лишние и убрал.
https://github.com/bitcoin/bitcoin/pull/9556
Карл, это охуеть как круто. Ради этого стоило жить. Чтобы убрать четыре точки-с-запятой.

А сорцы древнего биткойна я немного смотрел. Вот отсюда скачивал:
http://www.bitcointrading.com/forum/bitcoin-clients/original-bitcoin-source-code-archives/
Но тебе за ссылки тоже спасибо


Title: Re: Синтаксический сахар
Post by: kzv on January 20, 2017, 11:38:29 AM
Ну народ хочет в историю войти ))

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

Так-то бы разобраться как туда коммитить, я бы тоже поправил gettransaction, чтобы оно не только транзы из кошелька видело.


Title: Re: Синтаксический сахар
Post by: amaclin on January 20, 2017, 11:52:32 AM
Так-то бы разобраться как туда коммитить, я бы тоже поправил gettransaction, чтобы оно не только транзы из кошелька видело.
а оно разве не видит? -txindex=1 спасет гиганта мысли


Title: Re: Синтаксический сахар
Post by: kzv on January 20, 2017, 11:59:09 AM
Так-то бы разобраться как туда коммитить, я бы тоже поправил gettransaction, чтобы оно не только транзы из кошелька видело.
а оно разве не видит? -txindex=1 спасет гиганта мысли

Круто!
А я грешным делом сначала вызывал getrawtransaction а потом decoderawtransaction... А оно вон оно чо михалыч )))


Title: Re: Синтаксический сахар
Post by: amaclin on January 20, 2017, 12:15:03 PM
Круто!
А я грешным делом сначала вызывал getrawtransaction а потом decoderawtransaction... А оно вон оно чо михалыч )))

Не в этом дело. Клиент не хранит (если не указать -txindex=1) данные о полностью потраченных
транзакциях. Ибо если транзакция потрачена - это ничем не отличается от того, что её нет.
Конечно, для всяких анализов и блок-эксплореров надо индексировать все транзакции. Ну вот этот ключик в помощь


Title: Re: Синтаксический сахар
Post by: kzv on January 20, 2017, 12:25:10 PM
Круто!
А я грешным делом сначала вызывал getrawtransaction а потом decoderawtransaction... А оно вон оно чо михалыч )))

Не в этом дело. Клиент не хранит (если не указать -txindex=1) данные о полностью потраченных
транзакциях. Ибо если транзакция потрачена - это ничем не отличается от того, что её нет.
Конечно, для всяких анализов и блок-эксплореров надо индексировать все транзакции. Ну вот этот ключик в помощь

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


Title: Re: Синтаксический сахар
Post by: in100 on January 20, 2017, 12:37:07 PM
В смысле не хранит в отдельной базе? А с этим ключем все транзакции записываются в отдельную базу?

Создаётся дополнительный индекс, который позволяет искать транзакцию в базе по её ID.


Title: Re: Синтаксический сахар
Post by: kzv on January 20, 2017, 12:37:33 PM
А, кажись дошло.
Непотраченные транзакции хранятся в отдельной базе и их все видят функцией getrawtransaction которая быстро ищет по этой базе
Потраченные транзакции хранятся где-то в недрах блокчейна, откуда их вытащить можно только парсингом всех блоков. Чтобы их можно было вытаскивать быстрее, придумали флаг txindex. Правильно?


Title: Re: Синтаксический сахар
Post by: amaclin on January 20, 2017, 12:47:25 PM
А, кажись дошло.
Непотраченные транзакции хранятся в отдельной базе и их все видят функцией getrawtransaction которая быстро ищет по этой базе
Потраченные транзакции хранятся где-то в недрах блокчейна, откуда
их вытащить можно только парсингом всех блоков. Чтобы их можно было вытаскивать быстрее, придумали флаг txindex. Правильно?
в целом да.


Title: Re: Синтаксический сахар
Post by: in100 on January 20, 2017, 12:50:01 PM
Непотраченные транзакции хранятся в отдельной базе и их все видят функцией getrawtransaction которая быстро ищет по этой базе

Не совсем так :) Все транзакции хранятся в одной базе - файлах blkxxxxx.dat

Насколько я понял, по умолчанию индексируются только coinbase-транзакции и свои транзакции, поэтому они доступны команде getrawtransaction.

При включении параметра -txindex=1 кошель индексирует все транзакции - и свои, и чужие.