Функція биткоин депозит раптом перестав працювати

Моє додаток використовує хрон blocknotify-оновлення-депозит для пошуку входять депозити, користувачі внести гроші і вони будуть додані до свої баланси.

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

Я змінив код я зареєструвала показує помилки в журналі депозит і надав код тут.

Може хто допоможе мені вирішити це зводить мене з розуму.

Код депозит.

<?в PHP
простір імен програми\контролерів через HTTP\;

використання підсвічування підтримка\\фасади\перегляду;
використання підсвічування\підтримка\фасади\введення;
використання підсвічування\підтримка\фасади\журналу;
використання моделі додатки\Налаштування\;
використання моделі додатки\\гаманець;
використання моделі додатки\\депозит;
використання моделі програми\ " баланс\;
використання моделі додатки\\AddressDeposit;
використання користувачем програми\;

DepositController клас розширює BaseController { 

 blocknotifyUpdateDeposit публічна функція(){
 $blockhash = ісеть і (змінна$_GET['trxhash'])? Параметр $_GET['trxhash']:0; 
 $логфайл = 'laravel_notify_deposit.журнал';
//Журналів::useDailyFiles(storage_path().'/журнали/callbackdeposits/'.$журналі);
 Журнал::інформація("*******новий депозит Blocknotify оновлення: ".$blockhash);

 $установка = новий параметр();
 $гаманець = гаманець::де('тип','=','БТЦ')->перша();
доларовий гаманець->connectJsonRPCclient();
$limit_confirmations=$налаштування->то getsetting('num_confirmations_deposit',2);
 $listtrans = $гаманець->getListTransactions(); 
 @Лог::інформація("\п".'Listtrans результат: ',$listtrans); 
 $баланс=баланс новий();
 по кожному елементу ($listtrans як $key => $значення) {
спробувати{
 $transaction_id, отриманий = $значення['txid'];
 $транс = $гаманець->getTransaction($transaction_id, отриманий); 
 якщо($транс != значення null) {
 по кожному елементу ($транс["дані"] як $key => $деталь) {
 Журнал::інформація( "\N"в". угода деталь: ",$деталь);
 $рахунку = $деталь["рахунок"];
 $категорія = $деталь["розділ"];//відправка,отримання
 $підтверджує = $транс["підтверджень"];
 address_ $ = $деталь["url"];
 $сума = $деталь["сума"];
 Журнал::інфо (символ "\n"."------Рахунки: ".$аккаунт". -- категорія:".$категорії". --адреса: ".$address_);
 $депозиту = депозит::де('transaction_id, отриманий', $transaction_id, отриманий)->перша();
 //$user = користувач::де('логін', $аккаунт)->перша();
 $user_address_deposit = AddressDeposit::де('адреса',$address_)->перша();
якщо(використання isset($user_address_deposit->функція user_id)){
 $user = користувач::де('ідентифікатор', $user_address_deposit->функція user_id)->перша();
 якщо(використання isset($депозит->transaction_id, отриманий)){ 
 якщо($депозит->заплатив == 0){
 якщо($категорія == "отримати" && $підтверджує >= $limit_confirmations && використання isset($user->ВД))
 { 
 Застава::де('ідентифікатор',$депозит->ВД)->оновити(масив('платних' => 1,'підтвердження'=>$підтверджує));
 $залишок->addMoney($сума,$user->ідентифікатор); 
 Журнал::інфо (символ "\n".$суми". ".$гаманець->тип." був зарахований на ваш аккаунт");
}
}ще{
Застава::де('ідентифікатор',$депозит->ВД)->оновити(масив('підтверджень'=>$підтверджує));
 Журнал::інфо (символ "\n".$суми". ".$гаманець->тип." вже було зараховано на ваш рахунок. зверніться у службу підтримки, якщо вам потрібна додаткова допомога".);
}
}ще{
 якщо($категорія == "отримати" && ісеть і($user->ВД)) {
 якщо($підтверджує >= $limit_confirmations) {
 $depositOb=новий депозит();
$depositOb->функція user_id=$user->ідентифікатор;
$depositOb->transaction_id, отриманий=$transaction_id, отриманий;
$depositOb->fee_deposit=0;
$depositOb->сума=$сума;
$depositOb->заплатив=1;
$depositOb->підтвердження=$підтверджує;
$depositOb->адреса=address_$;
 $depositOb->created_at=date('р-м-д ч:я:и');
 $depositOb->updated_at=date('р-м-д ч:я:и');
$depositOb->save();

 $залишок->addMoney($сума,$user->ідентифікатор); 
 Журнал::інфо (символ "\n".$суми". ".$гаманець->тип." був зарахований на ваш аккаунт");
}ще{
 $depositOb=новий депозит();
$depositOb->функція user_id=$user->ідентифікатор;
$depositOb->transaction_id, отриманий=$transaction_id, отриманий;
$depositOb->сума=$сума;
$depositOb->заплатив=0;
$depositOb->підтвердження=$підтверджує;
$depositOb->fee_deposit=0;

$depositOb->адреса=address_$;
 $depositOb->created_at=date('р-м-д ч:я:и');
 $depositOb->updated_at=date('р-м-д ч:я:и');
$depositOb->save();

 Журнал::інформація( "\п"."Ця сума не підтверджена. Поточна підтвердження:" . $підтверджує".. Потрібно : 3.");
}
 }ще{ 
 Журнал::інформація по угоді( "\П"". це не депозит або рахунку є недійсним.");
}
}
}ще{
 Журнал::інформація("\п"."Не можете знайти користувача за адресою: "$.address_".".);
}
 } 
 }ще{ 
 Журнал::інформація("\п"."Ми не можемо знайти ніякої інформації про цей депозит. зверніться в службу підтримки".); 
}//транс
 }зловити (\виключення $д) {
 Журнал::зловив виняток інформація (':'. $е->функції GetMessage()."\Н");
}
}

 Журнал::інформація("*******стоп новий депозит Blocknotify оновлення*************"); 
 } 
}

Мій журнал помилок

[2019-08-31 17:35:01] local.INFO:
операції деталь: {"address":"37evB6raGttBxDEyMNzosS6wHbKuQrCob5","category":"receive","amount":0.014,"label":"newaccount3","vout":1}
[2019-08-31 17:35:01] local.INFO: зловив виняток: не визначено індекс: рахунки

[2019-08-31 17:35:01] local.INFO:
деталі угоди: {"address":"38pcypeGRgjeMWrRBQnoqBkM4YE75ubAnh",category"":"receive","amount":0.0018,"label":"newaccount4","vout":0}
[2019-08-31 17:35:01] local.INFO: зловив виняток: не визначено індекс: рахунки

Якщо вам це потрібно ось баланс код від balancecontroller

 $користувач = \авт::користувач();
 $addr_deposit = AddressDeposit::де('ид_пользователя',$user->ВД)->де('б',0)->перша(); 
 $адреса="; 
 $гаманець = гаманець::де('тип','=','БТЦ')->перша();
 якщо(!використання isset($addr_deposit->адреса)) {
спробувати{
 доларовий гаманець->connectJsonRPCclient(); 
 $адреса = $гаманець->getNewDepositReceiveAddress($user->ім'я користувача);
 AddressDeposit::вставити(масив('ид_пользователя' => $user->ідентифікатор,'адреса'=>$адресу, 'Б'=>0));
 }зловити (\виключення $д) {
 $даних['функція error_message']= "неможливо підключитися до гаманця"; зловили винятком//': '$.е->функції GetMessage()."\Н"; // 
}
 }ще 
 $адреса = $addr_deposit->адреса; 

 $баланс = баланс новий();
 $balance_amount = $залишок->методу getbalance();
+780
walesy74 10 трав. 2014 р., 08:54:06
25 відповідей

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

+945
828 03 февр. '09 в 4:24

Моя мета-підтримка декількох ЛН клієнтів без необхідності запуску повного вузла для кожного клієнта.

Як налаштувати LndHub на вершині RaspiBolt або RaspiBlitz?

+893
Gilbert the loli Nightray 7 лют. 2017 р., 14:06:01
Інші відповіді

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


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

У США біткойни розглядається як сировинний актив, а не як готівку. Тому, коли ви купуєте щось з Биткоином або обмін биткоина на долари, у вас є оподатковуваний прибуток на різниці між вашою базою в биткоины і значення, яке ви отримали за биткоины.

+875
tronyxonline 17 груд. 2014 р., 12:11:30

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

Крім того, розмір биткоин-блоків обмежена. Існує також обмеження на кількість операцій підписи у вигляді блоку. Самий зловмисник може зробити, це підняти комісійні.

+872
David Vernon 8 квіт. 2012 р., 18:29:57

Я можу витратити входи з 0 підтверджень?? Якби я міг, є якісь обмеження?

+864
Andrew Wang 20 лист. 2013 р., 22:33:21

В Bitcoin основний ідентифікатор транзакції додається дефіс і три цифри. Вони, як правило, 000. Що ці цифри означають?

Наприклад: b75b91ffc4b6f22b779ce45e4b140cf1d29dc894e368e3d8389c42444f870d5d-000

+860
lkmemphis 6 квіт. 2010 р., 04:24:33

Я хочу відправити биткоин з мого гаманця на інший Bitcoin адресу. Я працюю на їх API.

http://localhost:3000/merchant/$guid/payment?password=$main_password&second_password=$second_password&to=$address&amount=$amount&from=$from&fee=$fee

Це те, що я намагався зробити.

Але тут сума трохи заплутаною для мене. Мій продукт ціна 0.03000000 БТЦ. Так що буде значення $сума ?

Офіційна документація каже: сума, $сума, щоб відправити у сатоши.

І яка буде вартість $гонорар ?

Документація: https://blockchain.info/api/blockchain_wallet_api

+833
WalksAway 23 січ. 2014 р., 07:54:04

Я налаштування блискавки вузла за допомогою bitcoind і ЛНД і це керівництво:

Як встановити і використовувати мережі освітлення з bitcoind на биткоин Mainnet

Це було цікаво пару днів, але я зробив його на Крок 8.

Схоже, ЛНД працює і я створив гаманець. Але коли я роблю lncli розблокування, хоча ЛНД каже, що це було успішно, лінія lncli newaddress p2wkh не працює, тому що він з'являється ЛНД вимикання відразу після розблокування:

2019-03-09 07:35:10.393 [інф] LTND: версія: 0.5.2-99-бета фіксації=версії v0.5.1-бета-839-g3895a4f27698924eb5d1d72b157febf29014f81b, збірка=виробництво, лісозаготівлі=за замовчуванням
2019-03-09 07:35:10.393 [інф] LTND: активні ланцюга: биткоин (мережа=mainnet)
2019-03-09 07:35:10.525 [інф] "ЧДБ": перевірка для схеми оновлення: latest_version=8, db_version=8
2019-03-09 07:35:10.543 [інф] ЕКП: пароль gRPC проксі запущений на 127.0.0.1:8080
2019-03-09 07:35:10.543 [інф] ЕКП: пароль сервера RPC для прослуховування на 127.0.0.1:10009
2019-03-09 07:35:10.543 [інф] LTND: чекаю пароль шифрування гаманця. Lncli використовувати "створити", щоб створити гаманець, `lncli розблокувати, щоб розблокувати існуючий гаманець, або методу changepassword lncli для зміни пароля існуючого гаманця і розблокувати його.
2019-03-09 07:40:48.804 [інф] НСУВ: відкрив гаманець
2019-03-09 07:40:50.389 [інф] LTND: первинної ланцюга встановлюється на: биткоин
2019-03-09 07:40:50.704 [інф] LTND: ініціалізація bitcoind підтримав кошторисник плата 
2019-03-09 07:40:50.704 [інф] НСУВ: почав слухати для bitcoind повідомлення про оплату через ZMQ по TCP://127.0.0.1:18502
2019-03-09 07:40:50.704 [інф] НСУВ: почав слухати для bitcoind блокувати повідомлення через ZMQ на TCP://127.0.0.1:18501
2019-03-09 07:40:51.883 [інф] НСУВ: гаманець був розблокований без обмеження часу
2019-03-09 07:40:51.885 [інф] LTND: LightningWallet відкритий
2019-03-09 07:40:53.113 [РСМД] НСУВ: наздогнав висота 0
2019-03-09 07:40:54.095 [інф] HSWC: відновлення в пам'яті стан ланцюга з диска
2019-03-09 07:40:54.145 [інф] HSWC: платіжні схеми завантажений: num_pending=0, num_open=0
2019-03-09 07:40:54.145 [помилка] SRVR: не вдається створити сервер: немає активних каналів існує

2019-03-09 07:40:54.145 [інф] LTND: вимикання повній

Я не очікувала, що там буде активних каналів, тому що у мене немає на цей крок і у мене немає биткоинов в гаманці для.

Є канали за замовчуванням в базі даних (канали.дБ, я вважаю)?

Розгляд мережі

Це тому, що вузол не може отримувати від зовнішнього світу? Це на настільному ПК, підключеного до ноутбука, який ділиться ноутбука WiFi для робочого столу. У мене є маршрутизатор переадресація 9735 до ноутбука, який має утиліту rinetd перенаправлення цього порту на робочому столі. Якщо я не налаштований щось не так, я припускаю, що повинен працювати.

Дякую

+820
notre reine 16 груд. 2010 р., 09:48:44

Я не думаю, що це можливо, так, як ви описуєте його.

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

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

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

+765
Roddy of the Frozen Peas 4 лип. 2012 р., 13:24:20

Щоб додати у відповідь Джо:

"Блок видобувається кожні 10 хвилин" - це непорозуміння. Блоки знаходяться у випадковому порядку, і нову можна знайти в будь-який час. Це може бути 3 секунди після останнього, або 3 години. 10 хвилин-це мета; план полягає в тому, що через велику кількість блоків, середній проміжок між ними повинен підійти 10 хвилин. Але це нічого не говорить вам про якісь єдиним блоком. Так що якщо у вас немає longpoll, ви хочете, щоб запросити новий шаблон набагато частіше, напевно раз в декілька секунд.

+760
ckliborn 18 квіт. 2010 р., 18:34:57

Які зміст спокутувати хеш скрипта в угоді p2sh?

Від того, що я читав, це схоже на сценарій, але за замовчуванням він містить лише адресу одержувача?

+734
Alexander Mills 2 груд. 2010 р., 21:23:16

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

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

+645
Kaled Mohammed 22 лип. 2013 р., 14:08:22

Процесора нічого не робить сам по собі - це просто залізо без всякої логіки.

Вам потрібно підключити його до USB і запустити майнінг програмного забезпечення (наприклад, cgminer) на ПК, де поїмо підключений через USB.

+595
jgontrum 20 бер. 2018 р., 22:21:10
Розглянуто питання про вибір монет або адреси використовуються для фінансування угоди. Крім того, використовується для питання про функції імені контроль монет в Bitcoin Core, яка дозволяє вам управляти саме цим.
+565
sbarb 31 бер. 2012 р., 15:28:22

Оцінка 2140 на основі блоку нагороду вдвічі частоти на чотири роки. З математики і знання, що є 32 наполовину подій, в 2136, блок нагороду дадуть 0.00000168 BTC в день, який 0.00000042 BTC за блок. Це 42 Сатоши.

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

+479
user351145 11 бер. 2010 р., 16:28:16

Я хочу знати, чому видобуток nonce-це складно?

Випадковий код 32 біта (4294967296) і високий рівень графічною картою Nvidia можна перевірити і добувати його в секунду.

навіщо потрібен басейн у шахті блокчеин?

+409
Andrew Reeves 25 лип. 2012 р., 18:36:26

Є можливість один з ваших джерел живлення пішли погано? Ви можете додатково налагодити це шляхом отримання "журналу ядра" на вкладці "Система". Я б також спробуйте повторно Гостинний кабелі, і перевірити кожен hashboard індивідуально (потужність їх по одному за раз, щоб визначити, якщо вони як і раніше добре - переконайтеся, що для завершення роботи вимикайте ваш майнер перед виконанням будь-якої роботи!)

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

+399
Christopher Kale 28 жовт. 2016 р., 12:22:38

Блок нагороду за свій Namecoin 50, таких як Bitcoin, або там інша цифра?

+344
Joel Subach 12 лист. 2018 р., 19:20:43

У мене є/був гаманець з Blockchain.info містять 2 биткоин-адреси. Адреса містяться 0.33 БТЦ.

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

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

Може хто-небудь пояснити мені / допоможи мені, як я можу повернути мої кошти? Ці засоби завжди були в мій старий гаманець (колишній гаманця-ідентифікатор).

+321
Aike Pauk 13 лип. 2011 р., 15:46:30

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

Якщо він doesen't працювати, спробуйте інший блок Explorer, деякі з них перераховані нижче:

blockexplorer.com

blockr.Іо

blockcypher.com

+222
Yanick Girouard 20 бер. 2011 р., 02:25:29

Це був ярлик з легкістю виявити всі Mastercoin (зараз Омні) операцій. Ми розглянули видаленням його, коли ми були стурбовані нашої угоди може бути визначено, що шлях до цензури, але цього не сталося до щастя. Якщо ви Список всіх транзакцій на 1EXoDus, вам перерахувати всі операції в Омні протоколу.

+193
Les Farrell 3 лист. 2019 р., 06:02:36

Я виправив цю проблему сам. Під час сну або, можливо, повісити і жорсткий скидання (виключення безблагодатный) індекс блок зіпсувався. Кращі практики для Bitcoin-Qt, то, принаймні, на Mac, ймовірно, щоб вийти з програми перед введенням системи в сплячий режим.

Щоб усунути проблему, я розбив весь каталог

~/Library/application підтримки/Bitcoing/chainstate/

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

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

+170
TimG 30 лип. 2012 р., 19:35:35

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

Візьмемо, наприклад, платити один $5 для збору на вкладці в обід. Скажи своєму банку перевести $5 в свій банк через систему АСН. Ця система займає 3-5 днів, щоб завершити передачу. Протягом цього періоду часу, зміна можлива, і якщо це станеться, банк повинен використовувати свої ресурси, щоб бути посередниками в цьому. Це може включати в себе спробу угоди, звернувшись в інший банк, або зв'язатися з клієнтом у разі, якщо за $5 вже була знята. Ці дії все обійшлося банку гроші. Якщо ймовірність того, що розворот буде відбуватися, П, помножена на очікувану вартість у банк для боротьби з розвороту, з, більше, ніж комісія банку буде заробляти, Ф, банк не дозволяє транзакцію. Отже, ми маємо систему, де повинні бути виконані наступні умови:

Ф > З х П

Припустимо, банк стягує певний відсоток в якості плати, скажімо, обурливий 10% від угоди. Що означає " Е " становить 0,50$. В цьому випадку малоймовірно, що з х П буде менше, ніж $0,50, тому банк не може зробити переклад.

Припустимо, що банк стягує фіксовану ставку на трансфери, який буде використаний для покриття будь-якого ризику. Вартість 10 доларів за переклад будь-якої суми не було б нерозумно з точки зору банку. Однак, ви були б готові платити банку 10 $передача $5 для вашого друга?

Це лише одна з багатьох проблем, які Сатоши вирішена з винаходом ланцюжку блоків Bitcoin.

+65
spv71 24 січ. 2013 р., 19:53:37

Оновлення: код цього питання для всіх тестових випадків (Ура!) однак мені не подобається, як GetCompact використовує математику.АБС функція і не думаю, що це вірно в OpenSSL реалізації.

Виправляємо цю проблему, ймовірно, зробити це здійснення "ідеального"

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

С++ Швидше за все робить щось інше, коли лівий зсув типу BigInteger, тому що по С++ специфікацій, лівий зсув від'ємного числа не визначено.

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


Я працюю на наступний код C#, і постаралися зробити його вірним оригінального вихідного коду C++. І я намагаюся отримати цей код, щоб відповідати модульних тестів, описаних тут.

Моя мета-не тільки мати .Чистий представлення структур даних Qt, а також для читання і граматичного розбору JSON-RPC в код, а також.

Тести C#

 Типу BigInteger ББ = BitcoinQT.SetCompact(numToCompact);


 ББ = BitcoinQT.SetCompact(0x00123456);
/*
 00000000000100100011010001010110 SetCompact:
 00000000011111111111111111111111 Маска & (екстракт 0..23)
 00000000000100100011010001010110 результат
 00000000000000000000000000000000 прочитати байт 25..32 (>> 24)
 000100100011010001010110 preshifted 24
 00000000 postshifted 24
 00000000100000000000000000000000 ... перевірити біт млості
 00000000000000000000000000000000 результат ... 

 РЕЗУЛЬТАТ ПОМИЛКИ 00000000000000000000000000001100 ПОВИННО БУТИ 
*/

Код C#

 BlockTargetBits клас 
{

 статичного типу bool налагодження = false;

 внутрішні статичні рядки GetCompact(originalBigNumber типу BigInteger)
{
 // 
 // 
 // Отримуємо Компактний
 Типу BigInteger Нвм = originalBigNumber;
 байт[] numAsBytes = числ.ToByteArray();
 compactBitsRepresentation вигляді uint = 0;
 размер2 вигляді uint;// BN_num_bytes(Нвм);
 размер2 = (uint з)originalBigNumber.NumberOfBytes();
 якщо (размер2 <= 3)
{
 uint з amountToShift2 = 8 * (3 - размер2);
 якщо консоль (налагодження).Методу WriteLine(GetBits(Нвм) + "будуть зрушені" + amountToShift2);
 compactBitsRepresentation = (uint з)(інт)(типу BigInteger.АБС(кол-во) << (інт)amountToShift2); // Hack інструмент: -- АБС не може бути правильним, щоб використовувати тут
 якщо консоль (налагодження).Методу WriteLine(GetBits(compactBitsRepresentation) + "перебазується" + amountToShift2);
}
ще
{
 Типу BigInteger млрд = Нвм;
 uint з amountToShift2 = 8 * (размер2 - 3);
 якщо консоль (налагодження).Методу WriteLine(GetBits(БН) + "будуть зрушені" + amountToShift2);
 ВАР bnShifted = типу BigInteger.АБС(БН) >> (інт)amountToShift2; // Hack інструмент: -- АБС не може бути правильним, щоб використовувати тут
 compactBitsRepresentation = (uint з)bnShifted;
}

 // В 0x00800000 біт позначає знак.
 // Таким чином, якщо він вже встановлений, розділити мантиси на 256 і збільшити показник.
Консоль.Методу WriteLine(compactBitsRepresentation.Метод toString("х"));
 якщо ((compactBitsRepresentation & 0x00800000) != 0)
{
 compactBitsRepresentation >>= 8;
размер2++;
}
 якщо консоль (налагодження).Методу WriteLine(GetBits(размер2) + " розмір ");

 ВАР ТМП = размер2 << 24;
 якщо консоль (налагодження).Методу WriteLine(GetBits(ТМП) + " розмір (зміщується в правильне положення)");
 compactBitsRepresentation |= размер2 << 24;
 якщо консоль (налагодження).Методу WriteLine("21 987654321 987654321 987654321");
 якщо консоль (налагодження).Методу WriteLine(GetBits(compactBitsRepresentation) + "розмір # потім стиснути");

 compactBitsRepresentation |= (числ.Знак < 0 ? (uint з)0x00800000 : 0);

 якщо (compactBitsRepresentation == 0)
 повернення "0";
 повернення "0х" + compactBitsRepresentation.Метод toString("Х8");
}


 внутрішні статичні системи.Числа.Типу BigInteger SetCompact(uint з numToCompact)
{
 якщо консоль (налагодження).Методу WriteLine(GetBits(numToCompact) + " ця цифра буде укатываться ");

//
 // SetCompact
 // Витяг з числа бітів 0..23
 якщо консоль (налагодження).Методу WriteLine(GetBits(0x007fffff) + " Маска & (екстракт 0..23) ");

 uint з nWord = numToCompact & 0x007fffff;
 якщо консоль (налагодження).Методу WriteLine(GetBits(nWord) + " результат ");


 Типу BigInteger рет = нового типу BigInteger(nWord);

 // Додавання нулів зліва за даними біти 25..32
 ВАР ттт = рет.ToByteArray();

 uint розмір = numToCompact >> 24;
 якщо консоль (налагодження).Методу WriteLine(GetBits(розмір) + " читання байт 25..32 (>> 24) ");


 amountToShift вигляді uint = 0;
 якщо (розмір <= 3)
{
 amountToShift = 8 * (3 - розмір);
 якщо консоль (налагодження).Методу WriteLine(GetBits(рет) + "preshifted" + amountToShift);

 рет = рет >> (інт)amountToShift;
 якщо консоль (налагодження).Методу WriteLine( GetBits(рет)+ "postshifted" + amountToShift );
}
ще
{
 amountToShift = 8 * (Розмір 3);
 якщо консоль (налагодження).Методу WriteLine(GetBits(рет) + "preshifted" + amountToShift);

 рет = рет << (інт)amountToShift;

 якщо консоль (налагодження).Методу WriteLine(GetBits(рет) + "посунуть" + amountToShift);
}

 // Встановити значення від'ємне, якщо потрібно один біт 24
 якщо консоль (налагодження).Методу WriteLine(GetBits(0x00800000) + "... перевірити біт ні");

 Тип uint32 isNegative = 0x00800000 & numToCompact;

 якщо консоль (налагодження).Методу WriteLine(GetBits(isNegative) + "... результат");

 якщо (isNegative != 0)
 рет = рет * -1; 

 тест ВАР = рет.ToByteArray();
 якщо консоль (налагодження).Методу WriteLine ("рет" + "повернення");
 якщо консоль (налагодження).Методу WriteLine();
 повернення рет;
}

 внутрішні статичні рядка GetHex(типу BigInteger ББ)
{
 якщо (ББ == 0)
 повернення "0";
 ще 
 повернення ББ.ToSignedHexString().TrimStart("0".ToCharArray());
}

 громадськості статичної рядка GetBits(типу BigInteger Нвм)
{
 повернення GetBits(числ.ToByteArray());

}
 громадськості статичної рядка GetBits(інт Нвм)
{
 повернення GetBits(методу bitconverter.Метод getbytes(Нвм));
}
 громадськості статичної рядка GetBits(uint з Нвм)
{
 повернення GetBits(методу bitconverter.Метод getbytes(Нвм));
}
 громадськості статичної рядка GetBits(байт[] байт)
{
 Перевірте нове вікно інструментів();


 інт bitPos = (8 * байт.Довжина) -1;
 поки (bitPos > -1)
{
 інт значення параметра byteindex = bitPos / 8;
 інт зміщення = bitPos % 8;
 типу bool ісеть і = (Байт[значення параметра byteindex] & (1 << залік)) != 0;

 // ісеть і = [щоправда] якщо біт в bitPos встановлений, і false у противному разі
 if (isset і)
СБ.Додати("1");
ще
СБ.Додати("0");
bitPos--;
}


 повернення ШБ.Метод toString();
}

}
+54
Naciima Siciid Axmed 6 лют. 2017 р., 04:44:05

Прочитавши це питання я зацікавився цими загадковими спамерами, які надіслали Сатоши випадково. Для того, що я читав, тут було багато дискусій з цього приводу, в основному на Bitcoin розмови (обговорення тут, тут і тут - по-іспанськи теж тут, тут і тут), але і де-то в мережі (як от).

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

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

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

+44
Majid admin officialS 18 лют. 2014 р., 21:45:59

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

$200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil