Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
9 июля 2015, 5:48:01 PM   # 1
 
 
Сообщения: 1638
Цитировать по имени
цитировать ответ
по умолчанию Re: нуб вопрос Bitcoin ядра - как создаются объекты CTransaction?

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я вижу в net.cpp где протокольные сообщения читаются и различными местами по всем кодовой, где используются объекты CTransaction, но я не вижу, где любые объекты CTransaction (или CMutableTransaction OBJS) изначально создается.

Что мне не хватает? Как байты читать из CNode :: ReceiveMsgBytes () превратились в объекты CTransaction (для включения в mempool и т.д.)?
Melbustus сейчас офлайн Пожаловаться на Melbustus   Ответить с цитированием Мультицитирование сообщения от Melbustus Быстрый ответ на сообщение Melbustus


Как заработать Биткоины?
Без вложений. Не майнинг.


9 июля 2015, 7:23:27 PM   # 2
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: нуб вопрос Bitcoin ядра - как создаются объекты CTransaction?

Получил 1806 Биткоинов
Реальная история.





Я не делаю программирования C ++, поэтому я прошу прощения, если это совершенно неправильно, но я думаю, что создано здесь, начиная от линии 1783 года;
https://github.com/bitcoin/bitcoin/blob/master/src/wallet/wallet.cpp

Он получает вытеснен как CWalletTx и получает разобран в CTransaction / CMutableTransaction на стороне шахтера.
DumbFruit сейчас офлайн Пожаловаться на DumbFruit   Ответить с цитированием Мультицитирование сообщения от DumbFruit Быстрый ответ на сообщение DumbFruit

9 июля 2015, 8:33:20 PM   # 3
 
 
Сообщения: 1638
Цитировать по имени
цитировать ответ
по умолчанию Re: нуб вопрос Bitcoin ядра - как создаются объекты CTransaction?

Благодаря DumbFruit, хотя я искал, где txns создается при обработке сообщений от других узлов (в отличие от в бумажнике моего узла).

Нашел, хотя: https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L4195
Код:
...
CTransaction ТХ;
vRecv >> ТХ;
...

Я искал "новый CTransaction" где-то, что не существует, так как выше, как ТЙ OBJ создается из прочитанных байт в OBJ CNetMessage. Думаю, я должен refamiliarize себя с операторами С ++ сериализации (это было почти доза за 20 лет).


Для справки, это также полезно: https://en.bitcoin.it/wiki/Satoshi_Client_Sockets_and_Messages


Melbustus сейчас офлайн Пожаловаться на Melbustus   Ответить с цитированием Мультицитирование сообщения от Melbustus Быстрый ответ на сообщение Melbustus

9 июля 2015, 9:20:16 PM   # 4
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: нуб вопрос Bitcoin ядра - как создаются объекты CTransaction?

Другое дело, чтобы помочь вам, как вы смотрите через Bitcoin, официальную документацию. Вы можете найти это здесь: https://dev.visucore.com/bitcoin/doxygen/
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

9 июля 2015, 10:14:41 PM   # 5
 
 
Сообщения: 2870
Цитировать по имени
цитировать ответ
по умолчанию Re: нуб вопрос Bitcoin ядра - как создаются объекты CTransaction?

Я искал "новый CTransaction" где-то, что не существует, так как выше, как ТЙ OBJ создается из прочитанных байт в OBJ CNetMessage. Думаю, я должен refamiliarize себя с операторами С ++ сериализации (это было почти доза за 20 лет).

новый почти никогда не используется в современном C ++.

Это не "C ++ оператор сериализации", В Bitcoin Ядра, потоки данных, как CDataStream (vRecv там) перегружать >> а также << операторы сделать сериализации. Фактические сериализации в основном делаются с помощью кода в serialize.h через ADD_SERIALIZE_METHODS и READWRITE макросы, используемый в каждом классе, которые могут быть сериализациями.

Так vRecv >> Техас на самом деле vRecv.operator>>(АЯ), который заканчивается призваниями tx.SerializationOp (vRecv, ...), который применяет READWRITE макрос к каждому сериализованному полю CTransaction (плюс, возможно, некоторые другие работы), которые либо непосредственно unserializes значения для простых типов, или вызывают метод SerializationOp-значения, чтобы сделать это.

Смысл этого несколько сложной установки является то, что вам просто нужно сделать vRecv >> Техас к (безопасно) десериализируются всю сделку, и CTransaction только нужно иметь несколько строк кода, чтобы сделать это случиться.
theymos сейчас офлайн Пожаловаться на theymos   Ответить с цитированием Мультицитирование сообщения от theymos Быстрый ответ на сообщение theymos

10 июля 2015, 12:42:44 AM   # 6
 
 
Сообщения: 1638
Цитировать по имени
цитировать ответ
по умолчанию Re: нуб вопрос Bitcoin ядра - как создаются объекты CTransaction?

Я искал "новый CTransaction" где-то, что не существует, так как выше, как ТЙ OBJ создается из прочитанных байт в OBJ CNetMessage. Думаю, я должен refamiliarize себя с операторами С ++ сериализации (это было почти доза за 20 лет).

новый почти никогда не используется в современном C ++.

Это не "C ++ оператор сериализации", В Bitcoin Ядра, потоки данных, как CDataStream (vRecv там) перегружать >> а также << операторы сделать сериализации. Фактические сериализации в основном делаются с помощью кода в serialize.h через ADD_SERIALIZE_METHODS и READWRITE макросы, используемый в каждом классе, которые могут быть сериализациями.

Так vRecv >> Техас на самом деле vRecv.operator>>(АЯ), который заканчивается призваниями tx.SerializationOp (vRecv, ...), который применяет READWRITE макрос к каждому сериализованному полю CTransaction (плюс, возможно, некоторые другие работы), которые либо непосредственно unserializes значения для простых типов, или вызывают метод SerializationOp-значения, чтобы сделать это.

Смысл этого несколько сложной установки является то, что вам просто нужно сделать vRecv >> Техас к (безопасно) десериализируются всю сделку, и CTransaction только нужно иметь несколько строк кода, чтобы сделать это случиться.


Ага .... спасибо. Это устанавливает свой ум в правильном направлении. Цените деталь.
Melbustus сейчас офлайн Пожаловаться на Melbustus   Ответить с цитированием Мультицитирование сообщения от Melbustus Быстрый ответ на сообщение Melbustus



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW