Используя blockcypher BitcoinJs на клиентской стороне является безопасным или нет?

Я пытаюсь создать новую транзакцию, используя bitcoinjs на клиентской стороне. Это безопасный способ создать транзакцию из клиентской части, которая включает в себя завиток звонок.

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

Таким образом, это безопасно для обработки транзакций на стороне клиента или нет?

+966
Haramac 10 сент. 2019 г., 11:21:22
18 ответов

Я не смог найти результаты отбора монете написано где-нибудь, и просто закончил собирать его вместе с кодом. Он работает как Давид упомянул, но здесь более подробно.

На монете алгоритм выбора логики для передачи целевой суммы

  1. Если любой из ваших UTXO2 соответствует Target1 он будет использоваться.
  2. Если "сумма всех ваших UTXO меньше, чем цель" совпадает с целевой, то они будут использоваться. (Это в том случае если вы подметаете полный кошелек.)
  3. Если "сумма всех ваших UTXO меньше, чем цель" не превысит этот показатель, наименьший UTXO больше, чем ваши цели будут использованы.
  4. Остальные ядра биткоин делает 1000 выстрелов случайно объединения неизрасходованные сделки выходами , пока их сумма больше или равна целевой. Если это произойдет, чтобы найти точное совпадение, он останавливается в начале и использует это.
    В противном случае он, наконец, оседает на минимум

    • самый маленький UTXO больше, чем в створ
    • самая маленькая комбинация UTXO, которые он обнаружил в шаге 4.

Как Давид упомянул, подмножество сперва ограничиться UTXO, что есть хоть одно подтверждение, если оно отправлено по себе, или шесть подтверждений, если полученные от другой кошелек, потом расслабляет этих требований в двух других проходит, если нет подходящего набора UTXO может быть обнаружен.


Некоторые примеры

Алиса имеет четыре UTXO:
• UTXO_A 0.1 БТЦ
• UTXO_B 0.3 БТЦ
• UTXO_C 0.5 БТЦ
• UTXO_D 1BTC



Я буду игнорировать операционные издержки для простоты.

Пример 1:

Алиса хочет отправить 0.3 БТЦ.
Биткоин ядро обнаруживает, что UTXO_B совпадает с целевым, и он только использует UTXO_B в качестве входных данных.

Пример 2:

Алиса хочет отправить 0.4 БТЦ.
Биткоин ядро обнаруживает, что UTXO_C является самым маленьким UTXO больше, чем цель, и что сумма всех UTXO меньше, чем целевой (т. е. UTXO_A + UTXO_B = 0.1 + 0.3 = 0.4) соответствует целевому здесь. Оба UTXO_A и UTXO_B используются в качестве входных данных.

Пример 3:

Алиса хочет отправить 0.45 БТЦ.
Биткоин ядро обнаруживает, что UTXO_C является самым маленьким UTXO больше, чем цель, и что сумма всех UTXO меньше, чем целевой (т. е. UTXO_A + UTXO_B = 0.1 + 0.3 = 0.4) не превысит этот показатель. UTXO_C используется в качестве единственного источника данных, как маленький входной сигнал больше, чем цель.

Пример 4:

Алиса хочет отправить 0.35 БТЦ.
Биткоин ядро обнаруживает, что UTXO_C является самым маленьким UTXO больше, чем цель, и что сумма всех UTXO меньше, чем целевой (т. е. UTXO_A + UTXO_B = 0.1 + 0.3 = 0.4) не соответствует целевому. Он добавляет случайно выбранную UTXO 1000 раз, пока они не превзойдут цели, вспоминая мельчайшие достаточное сочетание. Минимально достаточный комбинация сравнивается с наименьшим один вход больше, чем цель. Если предположить, что он найдет лучшее сочетание здесь что бы UTXO_A + UTXO_B, он считает, что элемент < UTXO_A + UTXO_B < UTXO_C и использует UTXO_A и UTXO_B в качестве входных данных.

Пример 5:

Алиса хочет послать 0.6 БТЦ.
Биткоин ядро обнаруживает, что UTXO_D является самым маленьким UTXO больше, чем цель, и что сумма всех UTXO меньше, чем целевой (т. е. UTXO_A + UTXO_B + UTXO_C = 0.1 + 0.3 + 0.5 = 0.9) не соответствует целевому. Он начинает пробовать случайных комбинаций, как и раньше, и в этой ситуации, вероятно, обнаружите, что UTXO_A + UTXO_C = цель. Как он находит комбинацию, которая соответствует цели, он ломается и сразу же уходит с этой комбинации. UTXO_A и UTXO_C используются в качестве входных данных.


1"цель" используется здесь для сумма, которая будет потрачена.
2UTXO = неизрасходованные операции вывода

+977
Linda Terry 03 февр. '09 в 4:24

Какая последняя необходима хэшрейт на мой блок биткойн ?

Сколько энергии нужно, чтобы мои блок в день ? Спасибо

+947
To1ne 15 сент. 2013 г., 14:59:38

Это не выгодно добывать биткоин с компьютер(Ы) и GPU(ы). Если вы просто хотите, чтобы обеспечить безопасность сети и/или сохранить свое место теплое в высокотехнологичный способ, затем можно добывать Bitcoin ;)

Это может быть выгодно для вас, чтобы мои другие монеты, используя свой компьютер и процессор(ы). Вы также можете установить ваш компьютер для аренды вычислительной мощности другим путем присоединения услуги miningrigrentals.com

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

+923
painjero 25 мая 2017 г., 12:07:31

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

Из Вики:блок алгоритма хэширования

Тело блока содержит проводки. Это хэшируется только опосредованно через Меркле корень. Потому что сделок не хэшируется напрямую, хэширование блока с транзакцией 1 занимает ровно столько же количество усилий, как хэширование блока с 10 000 операций.

+851
viktoria1994vika 27 июл. 2010 г., 7:21:48

Я пытаюсь разобраться в случае использования опубликованных адреса бюджетирование на веб-страницы, на которую каждый может потратить. Внутри нашей компании, я хочу, чтобы избежать, что один человек может потратить эти средства. Он может потребовать более одной подписи, чтобы иметь возможность потратить эти средства. У меня была идея использовать multisig-адрес, но это, кажется, неудачно. Многие клиент StackExchange ссылки не покрывают этот сценарий, они все, кажется, чтобы покрыть как провести от адреса msig...

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

Что я сделал до сих пор: - Я думал, что "человек" может направить msig адрес с обычный бумажник (скрипт ака P2PKH). Не получится, так как скрипт по умолчанию не найти "истину" в стеке. Дали стандартный скрипт по умолчанию потребует ы.й. как это:

 ДУП ХЭШ ПХ CHK_SIG EQ_VFY 
 | | | | |
 | | | PKHASH | |
 | ПК | PKHASH | PKHASH | |
ПК? | ПК | ПК | ПК | ПК |
СИГ | СИГ | СИГ | СИГ | СИГ | ИСТИНА/ЛОЖЬ

Первый столбец (сиг и ПК?) будучи sigscript. На multisig-адрес отсутствует открытый ключ в первом столбце. Конечно, я мог бы играть с активировать скрипт в самом начале, и хэш, чтобы удовлетворить "OP_EQUALVERIFY". Но тогда скрипт не прекратить "правда" в конце, потому, что он будет уходить в защиту, и "хэшируется" окрошка на стек.

  • Я мог бы опубликовать redeemscript. Недостаток: это делает пользовательский опыт сложно

  • Я мог бы использовать std. P2PKH адрес, и "вперед" регулярно средства от P2PKH веб-адрес multisig в фоновом режиме. Недостаток: с текущих сборов, почти идиотские, когда расходуются только в небольших количествах. (Да, я мог бы написать код, чтобы собрать, пока не будет использована сумма >= ТХ сборы ...)

Есть простой (более умный) способ получения Bitcoin платежи на сайте, которые приходят с условием, чтобы быть потрачены только с несколькими подписями?

+837
aibiikemamba4 7 дек. 2016 г., 14:20:25

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

Так что клиент я должен использовать? Я буду использовать Debian (возможно в Ubuntu) сервер. Надеюсь, это не потребует много ресурсов (в данный момент ~1 ГБ ОЗУ-это максимум, что я могу дать но ~512 МБ желательно).

Также я хотел бы решение хорошо масштабируется. Так что, возможно, работа с кошельками-это не правильно в первую очередь? Например, я должен работать с RAW операций ("отправить с адреса x на основной адрес в") Вместо? И только синхронизация основной кошелек?

+813
Ray Nicholus 3 нояб. 2017 г., 3:38:43

В настоящее время накопилось около 52,000 неподтвержденные транзакции с биткоинами.

Сделки 0ee906dd3a240d3776d609853a7e855ed813b8a1e51328405145a8cffecbb804 будет подтверждена в конце концов.

В худшем случае сделка будет опускаться и монеты останутся в адрес отправителя.

+742
Arynn 19 мар. 2018 г., 19:52:39

Это может быть связано с тем, что Беркли ДБ не может быть построен на Ubuntu 18.10:

Не могу построить базу Беркли на Ubuntu 18.10. Во время вызова, чтобы установить получаю ошибку: определение типа ‘int __атомным_сравнение_обмен(db_atomic_t*, atomic_value_t, atomic_value_t)’ ambiguates встроенный декларации типа bool __атомным_сравнение_обмен(длинный беззнаковый инт, летучие типу Void*, Void*, который, ничтоже*, интервал, интервал)’
+729
Sami Uskela 19 нояб. 2016 г., 23:47:43

Децентрализованная система может быть изменена, да, если большинство пользователей, использующих систему, используя измененную клиента или изменен клиент имеет обратную совместимость. Биткоин 0.8 обновление вызвало некоторые проблемы, так как не все обновляются и 0.8 была ошибка, в которой все нуждается в обновлении.

+627
Rajesh Prajapati 31 дек. 2012 г., 9:45:04

Биткоин-транзакции, как правило, не обратимы. Если эта сделка была подтверждена, ваши монеты исчезли.

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

К сожалению, частая причина таких потерь заключается в том, что кто-то скомпрометировал свой аккаунт, например, угадывать ваши пароли или взлом компьютера, который вы использовали для входа в эту учетную запись. Если это так, то маловероятно, что вам будут возмещены, и все, что вы можете сделать, это план, чтобы улучшить вашу безопасность в будущем.

В любом случае, было бы неразумно использовать этот кошелек снова. Если есть еще средства есть, сразу перевести их на другой кошелек; в идеале, созданным с использованием вновь установленной операционной системы на защищенном компьютере.

+607
Dushyant Singh 22 нояб. 2016 г., 7:13:42

Следующее мое скромное понимание, я не специалист в болты.

Во-первых, причина для включения этого требования действительно пластичность транзакции. Если ковкого выходы употребляются для финансирования сделки, то:

  • funding_txid может измениться после того, как сделка будет транслироваться;
  • проверка состояния Техас может произойти сбой (funding_locked);
  • канал никогда не будет создан, даже если финансирование Техас отправить.

Во-вторых, а почему это не должно. Это связано с IETF в определение:

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

Следует не влияет на технические характеристики и некоторые клиенты могут иметь причины, чтобы игнорировать эту рекомендацию. Например, я могу написать клиент, который не включает в цепь BIP141-только биткоин кошелек и вместо того, чтобы подключится к уже существующей. Это позволит сделать установку проще и дешевле для некоторых пользователей (без дополнительных операций). Но мне надо понять последствия и ручкой из ковкого сделок в случае их txid изменения.

+567
J Smith 23 апр. 2010 г., 10:30:11

Как биткоин Вики объясняет на "монета уничтожения":

Биткоин имеет 2,1 квадриллиона сырья единиц, что составляет 8 десятичных знаков точности БТЦ, поэтому всю сеть могут работать на много меньше, чем полное количество биткоинов. Если дефляция попадает в точку, где сделки более 10 бтц это что-то неслыханное, клиенты могут просто переключиться на другой блок, так что, например, он показывает 10 мбтх, а не 0.01 БТЦ.

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

Делали некоторые грубые расчеты, можно увидеть, что это может быть так, что полное всеобщее принятие биткоина может привести к эквивалентным значениям 1 (будущее) Сатоши = 1 $(текущая) долларов США.

 total_bitcoins / население * (Сатоши/БТЦ)
= 21e6 / 7e9 * 1e8
= 300000 Сатоши/чел
+323
fhtuft 23 нояб. 2015 г., 0:47:04

Как возможно отменить У3 работает на Linux?

Я использую сервер Ubuntu 11.

Я скачал возможно отменить филиала cgminer и скомпилировал его для использования с CFLAGS="-O2 в -Уолл -март=родной" ./настройки --включить-пкрс

Я downlaoded официальный 4.9.0 и используется с CFLAGS="-O2 в -Уолл -март=родной" ./настройки --включить-Икар`, как описано в тексте для У3

Я делаю команду lsusb и он показывает это:

lsusb output

cgminer просто делает это

enter image description here

Есть ли что-нибудь, что я пропустил? Я читала, что его должны забрать У3 автоматически с параметрами по умолчанию, то я могу в течение часа это немного, чтобы получить 63ghs стабильный.

+311
Don Weston 7 апр. 2014 г., 21:41:38

bcoin можно запускать с —индекс-адрес или indexAddress: правда в bcoin.конф. Это позволит индексировать все сделки по адресу, я не думаю, что имеется в ядра биткоин.

Вы можете узнать о вызов API здесь: https://bcoin.io/api-docs/?shell--cli#get-tx-by-address

Обычно переключение индексов или после полного узла синхронизации не будет разрешено. Однако недавнее обновление модуля bcoin индексатор (на ветку master на GitHub, пока не обнародована или опубликована на НПМ) позволяет пользователю включить индексирование в любое время. Это, конечно, требует длительного сканирование всех данных для создания индексов.

Вы можете просмотреть индексатор обновления здесь: https://github.com/bcoin-org/bcoin/pull/758

+264
DrAzulene 23 мар. 2012 г., 9:27:55

Я пытаюсь установить издержки, используя метод settxfee через JSON ЭКП. Я знаю, что txFee (feerate) вводится в БТЦ/килобайт. Проблема в том, что как-то примерно 3 из 20 сделок имеют высшее feerate (от 1% до десятков %), чем установить. Даже если feerate разумно (не крайний минимум).

Например, я сделал пару сделок с feerate = 0.000075 на тот же кошелек. Что означает тот же адрес, те же плату, одинаковое количество. Но одна из сделок значительно выше feerate, что соответствует 0.00008745 БТЦ/КБ. (Заметьте feerate, не плата, которая является не вопрос это вопрос)

Вы можете проверять, что сделки здесь: https://www.blocktrail.com/tBTC/tx/223ca54c7554a3025c64e4b3c2cd1d087d3234dac0f4479ab4fbc955fd66a629

и getInfo возвращает следующее:

{
 "результат": {
 "осуждение-предупреждение": "предупреждение: getinfo является устаревшей и будет полностью исключена в 0.16. Проекты должны перейти на использование getblockchaininfo, getnetworkinfo, и getwalletinfo перед обновлением до 0,16",
 "версия": 150001,
 "protocolversion": 70015,
 "walletversion": 139900,
 "баланс": 4.97794018,
 "блоки": 1260652,
 "timeoffset": 0,
 "подключений": 8,
 "прокси": "",
 "трудность": 2108481.043832448,
 "тестовом режиме": правда,
 "keypoololdest": 1516698441,
 "keypoolsize": 1999,
 "unlocked_until": 0,
 "paytxfee": 0.000075,
 "relayfee": 0.00001,
 "ошибки": "предупреждение: неизвестный новым правилам активированный (versionbit 28)"
},
 "ошибка": нуль,
 "идентификатор": "getinfo"
}

где можно найти "paytxfee": 0.000075.

Команда бумажник getTransaction этой сделки возвращает:

{
 "результат": {
 "сумма": 0,
 "плата": -0.0000425,
 "подтверждений": 9,
 "blockhash": "000000000000074ccf2706f67b0e14d41332a802506ff20ec6f8ca2b5617d3de",
 "blockindex": 39,
 "blocktime": 1516966703,
 "txid": "223ca54c7554a3025c64e4b3c2cd1d087d3234dac0f4479ab4fbc955fd66a629",
 "walletconflicts": [],
 "время": 1516966389,
 "timereceived": 1516966389,
 "bip125-сменный": "нет",
 "комментарий": "testSetTxFee",
 "подробности": [
{
 аккаунт"": "",
 "адрес": "mfX97PgpBN3FfcqtCbGQEVhTqfTgkhq2oy",
 "категория": "отправить",
 "сумма": -0.0001,
 метка"": "",
 "Uвых": 0,
 "плата": -0.0000425,
 "заброшенный": ложные
},
{
 аккаунт"": "",
 "адрес": "mfX97PgpBN3FfcqtCbGQEVhTqfTgkhq2oy",
 "категория": "получать",
 "сумма": 0.0001,
 метка"": "",
 "Uвых": 0
}
],
 "наговор": "020000000311e435e566c8be4bc464864a0feb5b2ecf0e6b27d991ff495b1fa08e0ae2e8fc010000006a47304402203d6f61c6e00116471ff1040b10ae7e663e85d9cf123fe156173a6aa4da09ed1f02200dd871b8795450d49d490ed18e0986191ffb71463ea2fddafa4f1a780a1bc9b601210376c77248c7babc3ebaa829f7e84d962bf594fa3cd43cb993acafd318e0664867feffffff4276ce1b9f5a239f80141374b09673936ab5c62d308efb065a4f57cae9686e19000000006b483045022100e0e288ae95d09c7a9c1332acf87225a0438eca9464e488b05deb91a7b8598b910220442c5dc30a5e0488d15ae5a2204c7be4c908081d67e12ca1eb5e40013128ad490121025e642cbf02c9c5d910cdc4aa675c9f5cdbf29126ef20a211a1f71a9c7fb07678feffffffa6ebff34c02e28b3c54325ae741fbde0b25cf6d8a82e65518ec272182a59dfd6010000006a4730440220324a6d325b01bc763f8c8bcd8c068de6480b282af5b4cfc1d64a164f0328b16a02203082a6327c5b0204b7f02912f390e1a6c239b310bed2653b0be8bcea3e49addf012103d12d4776820b676697e50e452beda155fc91748c9fb4877cc243fa513f410febfeffffff0110270000000000001976a91400090765051b6fff0183085b2bf3b6506744329288ac653c1300"
},
 "ошибка": нуль,
 "идентификатор": "метода getbalance"
}

Где hex размер составляет 486 байт. Следовательно, плата должна быть 486/1000 * 0.000075 = 0.00003645, не 0.00004250.

Редактировать: при отправке тех же операций manytimes, он работал. Но когда мой модульный тест делает:

setTxFee(0.00001)
sendTransaction()
...
setTxFee(0.000075)
sendTransaction()
...
setTxFee(0.000035)
sendTransaction()

Затем он отправляет транзакции с плохой сборы (иногда). Возможно ли, что bitcoind не применяется feerate imediatelly?

Вы знаете, почему это так?

Спасибо за ваши ответы и извините за мой английский.

+161
Fjcmz 13 июл. 2019 г., 4:04:51

Есть chainquery, который позволяет попробовать некоторые команды CLI онлайн. Не все команды доступны, но это хорошее начало, чтобы получить ваши ноги мокрые. https://chainquery.com/bitcoin-api

+156
Ands 25 янв. 2017 г., 19:24:46
  1. Поставить клиента в режим регтест. Это позволяет мое произвольное количество блоков очень быстро. Добавьте это в ваш биткоин.конф

    регтест=1
    демон=1
    
  2. Генерировать блоки. Запустить

    биткоин-Кинк setgenerate истинного <количество блоков>
    

    где X-номер блока, который вы хотите. Вы хотите хотя бы 101 блока.

  3. Увидеть добывали блоки. Запустить

    биткоин-Кинк getblockhash <индекс>
    

    чтобы получить хэш-блока номер <индекс>. Затем взять хэш и запустить

    биткоин-Кинк getblock <хэш>
    
  4. Повторите шаг 3 для каждого блока, который вы хотите.

  5. Отправить биткоины на новый адрес. Запустить

    биткоин-Кинк метода getbalance
    

    чтобы узнать свой баланс. Запустить

    биткоин-Кинк sendtoaddress <адрес> <сумма>
    

Если вам не нужно, чтобы увидеть содержимое блока, вы можете пропустить шаги 3 и 4.

+91
JHW 14 дек. 2014 г., 22:10:48

Возможно, ваши сделки заняло больше времени, потому что биткойн дней уничтожили совсем другое..

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

+31
Ogarc 26 авг. 2015 г., 3:42:50

Показать вопросы с тегом