deriveChild і підписи транзакцій з використанням Дід-Оса

Я генерації кількох дітей, використовуючи один додатковий ключ. У мене немає проблем формування громадської адресами:

$майстер = HierarchicalKeyFactory::fromExtended(систему MyKey);
$ключ = $майстер->deriveChild(1);
$publicAddress = $ключ->getPublicKey()->getAddress()->getAddress();

Для того, щоб укласти угоду, мені потрібен закритий ключ публічних адрес. Як я можу створити / витягти закритий ключ, отримані дитиною? Я припускаю, що я не використовую розширений ключ для цього.

+938
Chinmoy Das 20 груд. 2014 р., 08:16:29
37 відповідей

Це не повинно бути просто коментар:

http://bitcoinity.org/markets

+999
cobaltduck 03 февр. '09 в 4:24

Я маючи важкий час розуміння того, як працює nLockTime. У биткоин Вікі є пояснення, що це бентежить мене:

nLockTime є параметром, який може бути приєднано до угоди, що вимагає мінімального часу (зазначається у форматі часу Unix або висота блоку), що до цього часу, то угода не може бути прийнятий в блок.

Може хтось пояснить простою мовою, на прикладі?

+997
PumpkinPatch 21 черв. 2018 р., 13:51:43
Інші відповіді

Пов'язані питання


Схожі питання

Насправді я не знаю, як, але зараз все працює.

Я пишу ось кілька речей, щоб мати на увазі, щоб змусити його працювати:

1) номер порту-це bitcoind сервера (8333 для mainnet, 18333 в тестовому режимі)

2) у разі тестовому режимі, мережею повинен бути переданий в якості параметра в конструктор колегіального

3) вузол версія повинна бути 4.х (використовувати НВМ використовувати 4), в іншому випадку код буде викликати виключення

+978
dsa86 17 жовт. 2013 р., 06:05:10

Я думаю, що багато очі продивилася вихідний код еталонного клієнта. Але код за раніше змінюється з цілого ряду причин (особливості, патчі, поліпшення тощо).

Я не зміг знайти багато інформації про аудит безпеки інших, ніж цей пост говорить, що биткоин фонд найняв Сержіу Деміан Лернер в якості основного аудитора безпеки.

Як основний Аудитор безпеки, Серхіо буде присвячений поточній огляд безпеки зміни в код ядра. Серхіо був волонтерство свій час і досвід з березня 2012 року і за останні пару років, він знайшов і допоміг виправити кілька уразливості в коді ядра. Серхіо був незалежним дослідник безпеки і консультант з 2011 року і буде продовжувати робота з іншими клієнтами на додаток до своєї ролі у фонді.

Проводимо аудит безпеки, будь то внутрішні або зовнішні, виконані на вихідний код ядра биткоин? Якщо так, то ким і як часто?

+963
Dilpreet singh 7 серп. 2017 р., 14:07:01

Більшість з них використовують біткойн заснована реклама компанії монетизувати їх і не платити багато грошей, тому вони приносити прибуток і виконувати кілька кранів.

Биткоин заснований Адверт компанії

Також вони використовують такі речі, як реферальні коди для інших змішувачів, які зможуть швидко повернути їх кількість сатоши, які вони платять, як більшість людей тримають переглядаючи багато змішувачі.

Є й інші речі, як платний скорочення URL-адреса, що використовується для отримання доходів.

+945
Nines Basyoni 3 січ. 2015 р., 00:31:51

Я хочу спробувати -salvagewallet команду, але це не в консолі. Який синтаксис командного рядка?

+934
artoodetoo 10 черв. 2018 р., 22:35:28

Мертвий Після Прибуття. Термін має на увазі про допустимих розділяє ваші мінер виявляє, що було знайдено занадто пізно, щоб бути включеними в P2Pool ви внутрішньої ланцюзі блоку, і тому не оплачені до Шахтарська. Лічильник інтуїтивно часткою ДОА ще може бути допустимим Bitcoin блок.

+914
Raidok 10 квіт. 2015 р., 19:27:24

Коли я оновлений до 0.8.1, він сказав, що переіндексація блоків на диску, і знадобилося близько чотирьох днів (ГРР). Але пізніше, він сказав щось про пошкоджені бази даних і він повинен був зробити це знову! Що він робить?

+896
Luba 13 січ. 2011 р., 06:23:32

Биткоин заголовки блоків служать системи тимчасових міток для Bitcoin. Який майнер знайде наступний блок включає в себе їх мітками часу системи та мережі або погоджується він дійсний або викидає його за те, що за межами їх маржа приймання.

Биткоин перевіряє час із запасом nTimeOffset, який встановлений биткоин питаючи інших вузлів, в який час їм думати і приймати медіану. Ви можете знайти цей код, подивившись на AddTimeData в util.cpp знайшов ось: https://github.com/bitcoin/bitcoin/blob/master/src/util.cpp

Слід також зазначити, що деякі шахтарі, в основному кросівки, не так багато хешування, що вони фактично підштовхують їх мітки кілька секунд у майбутнє, використовуючи rolltime, щоб отримати додаткову роботу, встановлює: https://en.bitcoin.it/wiki/Getwork#rollntime

+888
denisport69 5 лист. 2010 р., 11:49:11

Недавно я створив API, який виконує команди bitcoind. У мене він працює на іншому сервері, але він був налаштований кимось іншим. Я шукав розумної інструкції з встановлення bitcoind на мій новий сервер, але не можу знайти.

+885
ALamin Sarker 27 трав. 2010 р., 19:15:55

Ви повинні використовувати сирі операцій для того, щоб отримати повний контроль над Техас збори. Тоді ви знаєте, що входи і виходи, які ви використовуєте, і це дуже легко вирахувати Техас збори.

Приклад реалізації: https://github.com/GeorgeKimionis/BitcoinLib/blob/master/CoinWrapper/Services/RpcServices/RpcExtenderService/RpcExtenderService.cs#L95

+793
013cijntje 29 квіт. 2014 р., 18:59:06

Не знаючи батьків, вузол буде триматися на блок і тільки перевірки, які можна зробити без контексту (тобто батька). Він також буде просити своїх колег для батьківського блоку, і як тільки він її отримує, він буде підключатися як блокує його блокчейн, якщо у них більший обсяг роботи, ніж поточна блокчейн сайту.

В іншому випадку вузол ігнорує цей блок.


Майте на увазі, що цей сценарій вкрай малоймовірний, і не тому, що Шахтар навряд чи вдасться знайти два протистоять один одному блоку майже одночасно. А вузли релейних блоків після вони перевіряють їх, немає такого поняття, як "відправити на однолітків, але не в мережі". Відправка блоку у вузол відправляє його в мережу, як колегіального буде ретранслювати його з його однолітками і так далі. Тому, коли мама отримує блок, якщо воно не було Сібіл атакований противником, він передасть цей блок до мережі.

Коли однолітки Ма приймемо S1 і В4, вони будуть пересилати їх на Ма і Ма оновить свій блокчейн відповідно.

+757
jocull 1 лист. 2010 р., 22:23:25

В якості подарунка для дитини, я б рекомендував щось більш відчутне, ніж папірці, такі як Casascius монета або позолочені бар. Так, це більше, ніж частина Bitcoin, але навантаження-сам параметр може бути більш доступним.

+746
coderpawz 12 січ. 2019 р., 23:23:19

Закритим ключем є число, дуже великий 256-бітове число. Ви можете робити звичайні арифметичні дії над такими номерами, наприклад, додавання за модулем N, де N-порядок кривої (кому-то ще доведеться розширювати у разі необхідності). N-це дуже близько, але менше, ніж 2^256.

Ось схема дитини закритий ключ деривації:

enter image description here

Зліва 256 біт 512 біт хеш додається по модулю N до батьківського закритого ключа. Сума, яка також є 256-бітне число (т. к. за модулем N), є дочірнім закритим ключем. Сума материнського закритого ключа, і, здавалося б, випадкові 256-бітне число, здавалося б, випадкові 256-бітне число, так що сума буде прекрасно функціонувати як приватний ключ.

+644
Gospodin21 7 квіт. 2014 р., 02:55:34

(jed2 в Ірці) abrkn: 50 співтовариства. Не важливо, що пропозицію. Він очищається, коли пропозиція скасовується (або виконані).

+627
philip becker 22 лип. 2018 р., 05:10:49

Це залежить від того, скільки інформації вам не вистачає.

Ключовою формат імпорту гаманець в кодуванні base58. Таким чином, кожен символ в ключі може бути одним з 58 символів.

Ви згадали в коментарях, що вам не вистачає 21 символів. Якщо ви точно знаєте, що 21 символів не вистачає (тобто, ви знаєте, що перші 21 відсутній), у вас є 21^58, або 4.88336... × 10^76 можливості. Це поза діапазону від брутфорса.

Крім того, якщо ви не знаєте, які 21 символів не вистачає, у вас є багато, багато більше можливостей, так як ви не тільки повинні переглянути всі 58 можливості для кожного персонажа, але і спробувати всі можливі місця всередині розділу.

Якщо ви змогли знайти більше інформації, то ключ не може бути відновлений.

+616
tolikjv 6 груд. 2014 р., 23:51:14

Існує проект під назвою DarkExchange , яка спрямована на децентралізацію процесу торгівлі. Це не так важко, щоб децентралізувати біржі BTC<->обміни псу тощо, реальна проблема полягає в обмін на фіат, де хто-то повинен бути на "краю", щоб зробити фактичної передачі її за-як і раніше зводиться до довіри.

+576
Shivkumar kondi 13 груд. 2015 р., 22:59:07

Краще помоему у віртуальній машині або на робочому столі?

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

Досі я пробував запуск графічної оболонки Шахтарськ, роблячи інші речі. Це не спрацювало і я в кінцевому підсумку тільки 32khash/С. Що з переліченого є найбільш оптимальним для цього, чи є ще краще?


Мій Ноутбук Технічні Характеристики

------------------
Інформаційна Система 
------------------
 Ім'я машини: SAMSUNG
 Операційна система: Windows 8 64-розрядна (6.2, побудова 9200) (9200.win8_gdr.130531-1504)
Виробник системи: SAMSUNG електроніка Co., ЛТД.
 Модель системи: 520U4C/520U4X
 БІОС: P03RAL
 Процесор: Інтел(Р) ядро(ТМ) і i5-3210m з ЦП @ 2.50 ГГц (4 процесора), ~2.5 ГГц
 Пам'ять: 8192MB оперативної пам'яті
Доступної пам'яті ОС: 7894MB ОЗП
 Файл підкачки: 3598MB використовується, 5510MB доступний

---------------
Пристрої Відображення 
---------------
 Назва карти: Інтел(Р) графіка HD 4000
 Виробник: Корпорація Intel
 Тип чіпа: Інтел(Р) графіка HD сімейні
 Тип ЦАП: внутрішній
 Тип Пристрою: Повне Пристрій
 Ключові пристрої: enum\PCI\VEN_8086&DEV_0166&SUBSYS_C682144D&REV_09
 Дисплей пам'яті: 1664 МБ
 Виділеної пам'яті: 32 МБ
 Загальний об'єм пам'яті: 1632 МБ
 Поточний режим: 1366 х 768 (32 біт) (60 Гц)
 Ім'я Монітора: Універсальний Монітор PnP З
 Ідентифікатор монітора: SEC0200
 Основний режим: 1366 х 768(п) (60.072 Гц)
+555
user2364424 14 черв. 2010 р., 14:54:50

Я думаю, що ваше питання може бути пов'язаний з помилкою.

Звичайний биткоин-адреса хеш відкритого ключа (плюс кілька додаткових байтів), який в свою чергу пов'язаний з закритим ключем. Так що в цьому сенсі рядова адреса має закритий ключ.

Адреси Multisig не працює. Адреса не хеш відкритого ключа, і тому немає закритого ключа, безпосередньо пов'язаних із Адресу. Швидше, multisig-адреса хеш скрипта. Сценарій, в свою чергу, списків відкритих ключів, чиї підписи будуть необхідні для погашення угоди. Я думаю, що саме ці ключі, що ви маєте на увазі як "адреси" у вашому коментарі.

Тому витрачати угод вимагає, щоб ви знали, як закриті ключі одержувачів. Немає іншого бере участь закритий ключ.

Крім того, немає ніякої реальної проблеми, якщо інші люди знають сценарію , чий хеш-multisig-адресу. Єдина додаткова інформація містить публічні ключі одержувачів. Це може допомогти комусь визначити, хто ці одержувачі будуть (хоча скрипт повинно бути відкрито для того, щоб провести операцію, так що ця інформація в кінцевому підсумку буде в будь-якому випадку, публічних), але це не допоможе їм їх витратити.

Для отримання додаткових відомостей див. наступні відповіді:

Як multisig адреси працюють?

Що таке "хеш-сценарій" адреса точно і як це працює?

+480
Paul Molodowitch 13 лист. 2018 р., 22:38:59

Зокрема, чи є спосіб зробити це так, що це неможливо знати, якщо транзакція підписана пароль введений правильно, якщо його частині відпрацьовується блоку? Таким чином, навіть якщо ваш пароль потрібно тільки 1,000,000 намагається зламати, зловмисник повинен отримати мій 1,000,000 блоків для брутфорса пароль?

Я не в курсі будь-яких криптографічних конструкцій, які дозволять вам зробити це. Ближче всього я можу думати, це збільшення кількості ітерацій, функція деривації пароль, так що обсяг необхідних робіт аналогічно обсяг робіт, необхідних для створення блоку.

Хоча є спокуса сказати, що блоки з невірними паролями є недійсними (так наш шкідливий майнер не може навіть зберегти те, що він замінований), поставив би чесні шахтарі ризикують отримати недійсні угоди і втратити їх видобувають монети. Таким чином, недійсні угоди міг би бути проігноровані.

Що повністю не виправити, хоча речі. Якщо хто-то в мережі намагається підібрати пароль, представивши безліч угод, Шахтар побачать тисячі недійсних угод для кожного допустимим. Це означає, що чесні шахтарі майже ніколи не отримують дохід за їх заблокувати, що законні угоди майже ніколи не проходять.


У вас є правильна ідея в спробі запобігти автономного напад на пароль, хоча. Ви повинні дивитися на однорангової ключ Деривації.

+427
usasig 24 груд. 2013 р., 18:18:54

Я шукаю биткоин блокчейн Explorer, який буде працювати в "регтест режим", в основному для демонстраційних цілей.

Які-небудь пропозиції?

+351
arthropode 25 лют. 2019 р., 05:54:37

У мене 2 У3 antminers працює на Raspberry Pi в б+ Я не міг отримати мій U3 швидше, поки я не використовував програмне забезпечення мінера,набір для cgminer (офіційний) з команду: --au3-вольтової 830 --au3-250.0 частота в налаштуваннях меню він буде працювати на 62-63 гр/сек. ви можете завантажити його почути http://getminera.com/

+338
Dalton Calford 30 вер. 2017 р., 20:51:40

Нещодавнє дослідження Декер І Wattenhofer відповіді на питання з докладними вимірами:

"Поширення інформації в мережі Біткойн"

Посилання: http://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf

При нинішніх розмірах блоку, розмір блоку (через передачу та підтвердження) запитань більше, ніж затримка при запиті або розповсюдження пакетів через інтернет.

+338
Brad Peabody 6 січ. 2010 р., 01:27:32

Яким чином шлюз вексель відрізняється від будь-якої іншої вексель по мережі Ripple? Скажімо, якщо я отримав $1000 від шлюзу, то робить це краще, ніж валюта, скажімо, створити другу обліковий запис і відправка собою $1000 через що? Значить пульсація мережі якось розрізняти?

+248
Scot Desort 10 бер. 2011 р., 00:54:13

За даними іншого питання про Електрум повідомлення про помилку повідомлення про помилку, просто переданої від "Електри" і спочатку був створений у BitcoinQt:

За даними rpcprotocol.ч у вихідному коді помилка -26 має наступне значення:

 RPC_VERIFY_REJECTED = -26, //! Проводка або блок був відхилений за правилами мережі 

Припускаю, від слова "пил" з'являється в повідомленні, була сума, яку ви намагалися відправити нижче 5430 Сатоши? Що буде вважатися пилу, і, можливо, Електрум б не відправити транзакцію з пилом.

+227
drinking 13 лип. 2013 р., 03:51:42

Просто почекайте, ваша плата є низькою, тому у вас низький пріоритет. Вона буде в кінцевому підсумку зробити через.

+204
HaroldHibari 21 квіт. 2019 р., 18:14:10

Єдиний спосіб зробити, що б змінити рахунок, пов'язаний з адресою, який отримав угоди. Погляньте на setaccount.

+195
tatung 14 вер. 2019 р., 11:33:12

Вузол саме слово означає, що немає сервера і клієнтів, кожен працює програмне забезпечення еквіваленті. Немає 'центральний' нічого, биткоин був створений, щоб бути децентралізованої системи. Первинне копіювання і будь-які майбутні оновлення можуть бути закачаними з будь-якого іншого вузла.

+177
arhangal 28 лип. 2017 р., 05:58:21

Я використовую анкер 9-портовий концентратор USB 3.0. У мене є 3 з них і вони на 100% бездоганним. Пам'ятайте, ви отримуєте те, що ви платите за, і це кращі.

+141
Adam Tait 31 січ. 2018 р., 21:04:01

Цілком можливо, що проміжних вузлів на шляху між вами і одержувачем може відстежувати попередні платежі, які вони передали. Якщо це станеться, то вперше payment_preimage на payment_hash розкривається, будь-який вузол вздовж маршруту не все пам'ятаю, і якщо вони бачать те ж payment_hash використовувати знову в черговий платіж, вони будуть в змозі реагувати з відповідною payment_preimage перед відправкою платежу по маршруту, а це дозволить їм претендувати на кошти, які витрачаються без одержувача не отримуючи їх.

+139
Tiffani Schmidt 11 квіт. 2012 р., 03:41:06

Я хочу використовувати Грег Максвелла банлист на мій биткоин-сайту Windows.

Однак, коли я вводжу команди, я отримую таке повідомлення про помилку для кожного биткоин-команди CLI:

биткоин\бін>биткоин-Кінк setban ###.###.###.###/32 додати помилка 31557600: Не вдалося знайти облікові дані ЕКП. Файл cookie автентифікації не може бути знайшли, і пароль RPC не встановлено. Дивись -і rpcpassword -stdinrpcpass. Файл конфігурації: (C:\Users\admin\AppData\Roaming\Bitcoin\bitcoin.conf)

Як я можу отримати цю роботу?

+138
juan contato 5 січ. 2016 р., 04:00:55

Я спробую відповісти на ваші запитання конкретно, а от добре читати про те, як биткоин голосів на модернізацію.

1) питання насправді все той же питання: що Біпс ви підтримуєте? Ці пропозиції роблять свій шлях через співтовариство розробників биткоин, і після реалізації, можуть бути винесені на голосування на Шахтарів. Так що в принципі, будь-яка людина може зробити пропозицію.

2) див. відповідь на питання 1

3) немає

4) після відповіді на питання 3 - "Ні", це питання не має сенсу.

5) див. питання 3 і 4

Редагувати: я змінив посилання, пояснюючи голосування біп на один з меншим ухилом і погляд, і набагато більш коротким поясненням.

+133
AnonyUser 23 лип. 2011 р., 18:07:03

Я використовую Многоразрядной версії 0.5.16 (це класика?) Я намагаюся отримати свої биткоины від MultiBit до Електрума, але моя транзакція не буде підтверджена. Поточна проводка є 1mBTC, щоб перевірити його першим, так що це не величезна угода, якщо я втрачу цю 1mBTC. Я бачив тут щось подібне: угодам проявляється з боку однолітків, але не підтверджує Відповідь тут полягає в тому, що версія дуже стара.

Як багаторозрядні більше не підтримується, це навіть можна сміливо оновлювати, щоб переконатися, що мої угоди будуть підтверджені?

Заздалегідь спасибі,

RitchBit

+128
Edgard Barquero 5 квіт. 2012 р., 14:03:46

Мені потрібно підписати біткойн-транзакції, використовуючи око примітиви(не bitcoinj), але мого підпису не вважається дійсним bitcoinj.

Я намагався імітувати цей процес. Я створив випадковий хеш і підписує його, використовуючи як JCE і bitcoinj. Підпису не рівні.

Ось код

імпорт орг.bitcoinj.ядро.Екє;
імпорт орг.bitcoinj.ядро.Sha256Hash;
імпорт орг.spongycastle.крипто.дайджести.SHA256Digest;
імпорт орг.spongycastle.крипто.параметри.ECPrivateKeyParameters;
імпорт орг.spongycastle.крипто.підписанти.ECDSASigner;
імпорт орг.spongycastle.крипто.підписанти.HMacDSAKCalculator;
імпорт сонце.безпеки.ЄС.ECPrivateKeyImpl;
імпорт сонце.безпеки.ЄС.ECPublicKeyImpl;

імпорт Java.математика.Типу BigInteger;
імпорт Java.безпеки.*;
імпорт Java.безпеки.спец.Того, щоб;

відкритий клас ECDSABitcoin {

 приватна статичні заключні рядки SIGN_ALGORITHM = "SHA256withECDSA";

 громадськості статичної сили основних(string[] аргументи) кидає виняток {

 KeyPairGenerator keyPairGenerator = createGenerator();
 остаточний ключів ключів = keyPairGenerator.generateKeyPair();
 ECPrivateKeyImpl закритий ключ = (ECPrivateKeyImpl) ключів.getPrivate();
 ECPublicKeyImpl файлі publickey = (ECPublicKeyImpl) ключів.getPublic();
 спробувати {
 HashOut Sha256Hash = Sha256Hash.обгортання(toSha256("АВС".метод getbytes()));
 байт[] signatureBytes = знак(hashOut.метод getbytes(), ключів);

 Екє.ECDSASignature mySignature = Екє.ECDSASignature.decodeFromDER(signatureBytes).toCanonicalised();
 Екє.ECDSASignature bitcoinSignature = знак(закритий ключ.отримує(), hashOut.метод getbytes()).toCanonicalised();
 Системи.з.код println("мій підпис з" + mySignature.З + Р + mySignature.Р + "канонічної" + mySignature.isCanonical());
 Системи.з.код println("верифікувати" + перевірки(ключів, hashOut.метод getbytes(), signatureBytes));
 Системи.з.код println("підпис Bitcoinj з" + bitcoinSignature.З + Р + bitcoinSignature.Р + "канонічної" + bitcoinSignature.isCanonical());
 Системи.з.код println("Перевірте Bitcoinj" + перевірки(ключів, hashOut.метод getbytes(), bitcoinSignature.encodeToDER()));
 } зловити (виняток e) {
е. друковані();
}
}

 приватна статичні логічні перевірки(ключів ключів, байт[] повідомлення, байт[] signatureBytes) кидає NoSuchAlgorithmException, InvalidKeyException, SignatureException {
 остаточний verifySignature підпис = підпис.деыпзьапсе(SIGN_ALGORITHM);
verifySignature.initVerify(ключів.getPublic());
verifySignature.оновлення(повідомлення);
 повернення verifySignature.перевірити(signatureBytes);
}

 приватна статичний байт[] знак(байт[] повідомлення, ключів ключів) кидає InvalidKeyException, NoSuchAlgorithmException, SignatureException {
 остаточну підпис підпис = підпис.деыпзьапсе(SIGN_ALGORITHM);
підпис.initSign(ключів.getPrivate());
підпис.оновлення(повідомлення);
 повернути підпис.знак();
}

 приватна статичні createGenerator KeyPairGenerator() кидає NoSuchAlgorithmException, InvalidAlgorithmParameterException {
 остаточний KeyPairGenerator keyPairGenerator = KeyPairGenerator.деыпзьапсе("ЕС");
 Того, щоб ecParam = Новий того, щоб("крива secp256k1");
keyPairGenerator.ініціалізувати(ecParam);
 повернення keyPairGenerator;
}

 приватна статичні Екє.Знак ECDSASignature(privateKeyForSigning типу BigInteger, дані Byte []) {
 Підписала ECDSASigner = новий ECDSASigner(новий HMacDSAKCalculator(новий SHA256Digest()));
 ECPrivateKeyParameters привчной = новий ECPrivateKeyParameters(privateKeyForSigning, Екє.Кривий);
 підписанта.инит(правда, привчной);
 Типу BigInteger[] компоненти = підписанта.generateSignature(дані);
 повернення новий Екє.ECDSASignature(компоненти[0], комплектуючі[1]).toCanonicalised();
}

 приватна статичний байт[] toSha256(байт[] повідомлення) кидає NoSuchAlgorithmException {
 Крипта MessageDigest = MessageDigest.деыпзьапсе("ша-256");
склеп.скинути();
склеп.оновлення(повідомлення);
 повернення склеп.дайджест();
}
}

Результат:

Мій підпис з 45669553786690215047884329722902825758089042579493437816717142987836102849876 Р 14778973653615637448416336446742229796258878351047437829727432860950944374049 канонічної правдою
Перевірити мої щирі
Підпис Bitcoinj з 24278043061766196831119988370534304503511938256487950554838614741011144316017 Р 26413727078831382349368962255251267289169651926313668837949728205557969096319 канонічної правдою
Перевірити Bitcoinj неправдиві

Як ви бачите, підписи абсолютно різні, хоча я використовую той же закритий ключ. Що не так з моїм кодом? Я просто не розумію.

+124
DevelopAres 2 січ. 2015 р., 11:21:58

У цій угоді, я перевів 2 БТЦ від мого Coinbase.com гаманець на зовнішній адресу.

Transaction Outputs

Чому там 3 виходи в угоді?

Я розумію виходу 2 БТЦ, і 0.0001 БТЦ плата за операцію. Один з виходів це, ймовірно, змінити адресу. Але я не знаю, що 3-й вихід.

Є/не Coinbase.com

  • об'єднати незв'язані транзакції користувачів у єдину транзакцію на блокчейне?
  • відстеження грошових коштів або користувальницькі транзакції поза блокчейна (ефективного об'єднання коштів)?
  • витягуючи власний гонорар від угоди?
+78
Midni 6 лист. 2018 р., 06:04:22

Я читаю ядра биткоин-коду. Я хочу знати, як отримати биткоин адреса об'єкта CTxIn.

У мене є об'єкт CTransaction. Я знайшов спосіб, як отримувати адреси від Uвих, як показано нижче. Але я не знаю про VIN.

UniValue з(UniValue::VOBJ);
ScriptPubKeyToUniv(txout.scriptPubKey, виходить, істина);

UniValue у = find_value(з "адрес");
UniValue УФ = у.getValues()[0];
newDestination = УФ.get_str();

CTxIn має scriptSig. Я думаю, що я можу отримати адресу від нього.

CTxIn

https://dev.visucore.com/bitcoin/doxygen/class_c_tx_in.html


Оновлення 1

Я знайшов зробити за замовчуванням за допомогою ScriptToAsmStr. Я знаю, що це працює тільки для P2PKH адресу.

вектор<рядок> масив;
З допомогою cscript = _tx.ВВХ[0].scriptSig;
рядок a = ScriptToAsmStr(и, істина);
імпульс::алгоритм::розкол(масив, імпульс::is_any_of(" "));
якщо масив.розмір() == 2) {
 << такі функції cout[1] << епси; // 0396f8781a4900372a5d72d84718d146170d5983e67dff8b4a28fef80690c09767
}

Я зараз шукаю для перетворення за замовчуванням в биткоин-адресу на mainnet.


Оновлення 2

Я пробував як нижче, але "невірний" це показав..

константный тип char *функція cstr = "0396f8781a4900372a5d72d84718d146170d5983e67dff8b4a28fef80690c09767";
СТД::вектор<беззнаковий тип char> ВМК(КСТР, КСТР + функція strlen(КСТР));

CPubKey за замовчуванням(ВМК);
якщо (за замовчуванням.Функція IsValid()) {
 соиь << "дійсним" << епси; 
} ще {
 соиь << "невірний" << епси;
}

Оновлення 3

Спасибі відповісти Андрій чау, я міг би зробити об'єкт CPubKey. Все, що залишилося, це вивести биткоин-адресу об'єкта.

#включити "utilstrencodings.ч"

СТД::вектор<беззнаковий тип char> ВМК = ParseHex (0396f8781a4900372a5d72d84718d146170d5983e67dff8b4a28fef80690c09767"");

CPubKey за замовчуванням(ВМК);
якщо (за замовчуванням.Функція IsValid()) {
 соиь << "дійсним" << епси;
} ще {
 соиь << "невірний" << епси;
}

Оновлення 4

Нарешті, у мене є биткоин-адресу об'єкта CTxIn. Я думаю, що це не розумно. Можуть бути й інші способи. І все одно сенс не впевнені CKeyID по. Я буду дивитися на це в деталях.

CKeyID ІД = за замовчуванням.GetID();
Адреса CBitcoinAddress(ідентифікатор);
якщо (адреси.Функція IsValid()) {
 соиь << "дійсним" << епси; 
} ще {
 соиь << "невірний" << епси;
}

соіь << адреси.Метод toString() << епси; // 15L7U55PAsHLEpQkZqz62e3eqWd9AHb2dh
+76
Naf 12 лют. 2017 р., 23:21:03

Крім того, txindex=1 використовується для Бути необхідно, якщо ви хочете використовувати ЛНД (мережа блискавка демона). См https://github.com/lightningnetwork/lnd/pull/751

+60
Christobel 15 квіт. 2016 р., 22:34:34

Показати питання з тегом