'Узел не находится в состоянии ошибки связаны' при попытке выполнить транзакцию OP_RETURN с NBitcoin
Это мой первый раз, пробуя NBitcoin библиотека для создания сделки. Я пытаюсь создать OP_RETURN
сделки, но каждый раз, когда я пытаюсь запустить версию рукопожатие
с узлом, я получаю ошибку: узел не находится в подключенном состоянии
.
Это требует пояснений, но я пробовал несколько, что считаются надежными узлами.
Я предполагаю, что это четыре части вопрос:
При попытке
OP_RETURN
сделки в NBitcoin, нужно добавить шахтерском сборов в TransactionBuilder вручную?Есть ли способ, чтобы использовать
узел.Подключить
так это будет просто поиск доступных узлов, а не указание конкретного узла?Это вопрос, который я имею OP_RETURN и не что-нибудь еще? Нужно ли мне создавать еще один выход без значения и добавить сборов минера для того, чтобы отправить его? Есть библиотеки в PHP, Python и JavaScript для этого, но я пытаюсь выяснить, как сделать это с NBitcoin.
Если я хотел сохранить входящие хеш в скрипте OP_RETURN, я делаю это правильно? Байтовый поток, кажется, слишком долго.
Heres мой код, который находится в .Чистая MVC4 с действия контроллера:
[Протоколы HttpPost]
NewTransaction общественного ActionResult(строка хэша)
{
ВАР paymentSecret = новый BitcoinSecret("//закрытый ключ");
// Пример хэш "45e114a7f2c6122c9c1dabbd4df187e66545c17ca0bd28de732499dbee476811"
ВАР сообщение = хэш;
ВАР байт = кодировка.В utf8.Метод getbytes(сообщение);
ВАР blockr = новый BlockrTransactionRepository();
ВАР fundingTransaction = blockr.Сделать("60db94bfb43dd0d98ba7fdfbbg4f29a850f7s5ea7d79a32c4r954096f2945b04");
оплата ВАР = новую транзакцию();
оплаты.Входы.Добавить(новый TxIn()
{
PrevOut = новый минус(fundingTransaction.GetHash(), 1)
});
оплаты.Выходы.Добавить(новый TxOut()
{
Ценность = Деньги.Ноль,
ScriptPubKey = TxNullDataTemplate.Экземпляр.GenerateScriptPubKey(байт)
});
оплаты.Входы[0].ScriptSig = paymentSecret.ScriptPubKey;
оплаты.Знак(paymentSecret, ложь);
используя (ВАР узел = Узел.Подключения(Сеть.Главное, "67.221.193.55", новый NodeConnectionParameters()
{
IsTrusted = истина,
IsRelay = ложь
}))
{
// Всегда терпит неудачу на рукопожатие
узел.VersionHandshake();
узел.Метод SendMessage(новый InvPayload(InventoryType.MSG_TX, оплаты.GetHash()));
узел.Метод SendMessage(новый TxPayload(оплата));
Нить.Сон(500);
}
обратный вид (индекс"");
}
Редактировать
Я пытался использовать TransactionBuilder
, но все же придумали одну и ту же ошибку. В этот раз я на самом деле установление размера платы. Я также использовать другой узел и указание порта. Вот попытка:
ВАР paymentSecret = новый BitcoinSecret("//закрытый ключ");
// Пример хэш "45e114a7f2c6122c9c1dabbd4df187e66545c17ca0bd28de732499dbee476811"
ВАР сообщение = хэш;
ВАР байт = кодировка.В utf8.Метод getbytes(сообщение);
финансирование ВАР = новую транзакцию()
{
Выходов =
{
новый TxOut("0.01", paymentSecret.GetAddress())
}
};
монеты ВАР = финансирование
.Выходы
.Выберите((О, я) => новая монета(новый минус(финансирование.GetHash(), и), о))
.Метод toArray();
ВАР txBuilder = новый TransactionBuilder();
ВАР ТХ = txBuilder
.AddCoins(монеты)
.AddKeys(paymentSecret.Закрытый ключ)
.Отправить(TxNullDataTemplate.Экземпляр.GenerateScriptPubKey(байт), деньги.Ноль)
.SendFees("0.00001")
.SetChange(paymentSecret.Умолчанию)
.BuildTransaction(истина);
txBuilder.Проверить(Техас);
используя (ВАР узел = Узел.Подключения(Сеть.Главное, "67.221.193.55:8333", новый NodeConnectionParameters()
{
IsTrusted = истина,
IsRelay = ложь
}))
{
узел.VersionHandshake();
узел.Метод SendMessage(новый InvPayload(InventoryType.MSG_TX, Техас.GetHash()));
узел.Метод SendMessage(новый TxPayload(Техас));
Нить.Сон(500);
}
Может кто-нибудь помочь. Отсутствует документация с указанием как провести OP_RETURN
сделки. Спасибо.
Биткоин Биткоин, поэтому вы должны проверять сделки самостоятельно. Шахтер вознаграждены за защиту сети, работая на специальной хэш. Шахтер, что бы выпустить блок с недействительной сделке будут отклонены все узлы и не будет работать... потому что все форумчане все.
Весь блокчейн не требуется, чтобы проверить, на самом деле вам нужно только неизрасходованные выходы. Сейчас нет возможности узнать, что помимо скачать весь блокчейн.
Эффект будет сделать оставшиеся биткоины стоит больше с течением времени, как другие остаются неизрасходованными, как я понимаю.
Связанные вопросы
Похожие вопросы
я могу настроить мой адрес начнется через getnewaddress?
например, вместо начального адреса с 1asdjIOAWJRA
я пишу getnewaddress 1xxxx далее как хотите
также в чем разница между адресами, начиная с 1 и адресов, начиная с 3?
я могу выбрать из Bitcoin-CLI, чтобы получить мой адрес, начиная с 1 или он должен быть случайным и может быть запущена на 3, пока я не желаю, что?
причину нужно подгонять адреса, чтобы убедиться, что это действительно создает этот оффлайн адресам мгновенно и не в скрытую базу данных, установленных при установке биткоин-Кинк
кто-нибудь знает, сколько стоит BlockCypher плата при выполнении микро-Техас? Я читал здесь (https://www.blockcypher.com/dev/bitcoin/#microtx) и он говорит, что это автоматически (вычитается из источника). Мне нужна конкретика, как это в % или фиксированное значение, но не могут ее найти.
Так у меня Ubuntu 16х работает Bitcoin сердечника. Его полный узел и полностью синхронизированы. Работать с bitcoind --демон предложил. Используя определенный адрес из моего кошелька, когда я отправить деньги на адрес getblanace работает отлично (биткоин-CLI и метода getbalance ХХХХ 1). Всякий раз, когда я отправить деньги из адрес, (на совершенно другую систему через веб-кошелек), это показывает, что биткоины приехать, когда ожидается, но моя метода getbalance моего правильного адреса не заходит. Я даже попытался отправить все деньги в 10 разных операций, и увидел, что это был сбой, когда счета должны были быть ноль бы выйти, все время всегда сообщая, что у меня высокий первоначальный баланс.
Я чувствую, что я пропускаю что-то простое, но я не могу показаться, чтобы выяснить это. Спасибо заранее
Есть ли возможность установить биткоин ядра на Raspberry Pi с 3, так как я попробовал его один раз и из этого ничего не вышло и у меня внешний диск для данных биткоин за это?
Операционные системы: raspbian (8 ГБ дискового пространства с 1TB внешний диск HDD)
Если это не работает, вы можете объяснить его подробности мне, почему он не может?
Если это не работает, можете ли вы сказать мне правильный путь, чтобы установить его?
Вам не нужен интернет или приложение. На самом деле, машина может сканировать бумажный QR-код или мобильного телефона.
Проблема может быть в том, что QR-код кодирует различную информацию, чем то, что вы думали, что он делает, или то, что сканер банкомата не распознает QR-код на экране. То, что вам нужно, чтобы показать это биткоин-адрес.
Попробуйте установить ваш экран на полную яркость, будьте уверены, чтобы не заблокировать любой части экрана, когда вы представляете его, и проверить, является ли QR-код содержит фактически биткоин-адрес, а не что-то другое, например закрытый ключ и запрос на оплату.
В честной узел - это узел, который не пытается изменить историю. Это не атакующий узел , который пытается изменить прошлое блок в Blockchain предположительно в интересах их материально.
Обратите внимание, что поскольку сделки являются криптографически подписаны, "злоумышленник может попытаться изменить одну из своих сделок, чтобы вернуть деньги," Биткоин документе.
Последние комментарии от пользователя Reddit в ответ на BTC.топ-приобретение 54 биткоин Наличка ненавижу отметил, что блок развития доработки удаляет угрозы 51% атаки.
Я никогда не слышал, чтобы заблокировать завершение раньше, но мое понимание заключается в том, что его результаты в узлах отклонить изменения блоков, как только они достигли определенной суммы подтверждения в Blockchain. На данный момент, я считаю, он стоит в десять подтверждений в Bitcoin наличных блокчейн.
Это действительное развитие? Есть ли ограничения на это?
После одного подтверждения, сделка вряд ли будет дважды провел. Тем не менее, каждое очередное подтверждение снижает вероятность экспоненциально. В основном, количество подтверждений обеспечивает дополнительную безопасность, что сделка не будет отменена.
Одна из причин розничный магазин или частное лицо может дождаться дополнительных подтверждений для доставки время; оно только принимает один час для 6 подтверждений для прохождения, которые незначительно времени для доставки товара, но могут предоставить гарантии продавцу.
Когда криптовалют изменения алгоритма (например. алгоритме Scrypt и X11), как добиться слияния двух блокчейнами?
Я предполагаю, что они не могут быть напрямую совместимы, основанные на совершенно различных алгоритмов, это может вызвать loadBlock()
ошибка. Они же не могли просто сделать два блокчейнами, как и все скрипт добывают монеты будут unspendable на Х11 Blockchain и наоборот.
Я видел экземпляры разработчиков крипто имея v1 до V2 бирже (обычно на какое-то соотношение, как 0.8:1), однако это потребует V2 в блокчейне есть премайн для распределения преобразования.
Надеюсь, я не слишком глубоко в мои мысли, любые уточнения будут с благодарностью.
Я должен указать, что путем слияния я не имею в виду запуск обоих алгоритмов на одну монету (шафран-стиль), я имею в виду как чего-то вдоль линий
если blockNumber <= (maxScryptBlock) делать
{блок.readHash(скрипт);
}
еще если blockNumber >= (maxScryptBlock) делать
{блок.readhash(Х11);
}
Я не могу показаться, чтобы найти любую писанину в любом месте, как разработчик делает переключение с одного алгоритма на другой, или действительно любое для клонирования любой не-алгоритме Scrypt/SHA256 с монету.
Я пытаюсь построить команду nodejs с командиром, bitcoinjs-Либ bitcoincashjs, blocktrail-СДК. В настоящее время у меня есть проблема, когда пытаются провести биткоин наличные адреса segwit.
Пример:
- В адрес segwit БТЦ
- B, С является биткоин наличных адреса
- Б отправлять Bitcoin наличными
=> Как отправить биткоины наличными В С?
Я пробовал этот код, но не удалось.
ВСН.Сетей.defaultNetwork = ВСН.Сетей.тестовом режиме;
вар для = "ХХХХ";
ВАР blocktrail_client = blocktrail.BlocktrailSDK({
значение apiKey: "ХХХХ",
apiSecret: "ХХХХ",
сеть: "КБК",
тестовом режиме: правда
});
ВАР привчной = "ХХХХ";
ВАР закрытый ключ = новый МПБ.Закрытый ключ(привчной);
ВАР-адрес = закрытый ключ.для().метод toString();
blocktrail_client
.addressUnspentOutputs(адрес)
.затем(асинхронные (РЭС ошибка) => {
если (ошибка) {
консоль вернуться.журнал(ошибка);
}
если (рез.данных.длина == 0) {
консоль вернуться.лог("ошибка. Нечего послать".)
}
ВАР ТХ = РЭС.данные[0];
utxo = {
txId: Техас.хэш,
outputIndex: 0,
адрес
сценарий: Техас.script_hex,
Сатоши: Техас.значение
};
сделки с const = новый МПБ.Сделки()
.из(utxo)
.для(для, Техас.стоимость - 1000)
.сбор(1000)
.знак(закрытый ключ);
blocktrail_client.sendRawTransaction(
сделки.метод toString(),
(ошибка, хэш) => {
если (ошибка) {
консоль вернуться.журнал(ошибка);
}
консоль вернуться.журнала(хеш);
}
);
})
.поймать(ошибка = консоль>.журнал(ошибка));
Я проверил с моим поставщиком электроэнергии, и мне сказали следующее:
Тариф за единицу (за кВт) = 0.1399 долларов США
Стандартная стоимость (в сутки) = 0.1645 долларов США
В то время как добыча, если мой компьютер использует 100Вт (который читает мой электрический монитор у меня).
Как мне работать, сколько этот шахтер обходится мне в час с точки зрения потребления электроэнергии?
Как из ядра биткоин 0.7.1 (19 октября 2012), Вы можете работать как mainnet и Testnet, просто начиная с Bitcoin Core с соответствующими флагами:
bitcoind -демон mainnet#, - демон заставит его раскошелиться на задний план
bitcoind -демон -тестовом режиме # тестовом режиме
Как из ядра биткоин 0.9.0 (19 марта 2014), вы можете легко использовать биткоин-интерфейса командной строки
для отправки команд на обоих узлах:
биткоин-Кинк getinfo # mainnet, использует порт 8332 для RPC-JSON с
биткоин-Кинк -тестовом режиме getinfo # тестовом режиме, использует порт 18332 для RPC-JSON с
Также, как и Биткоин основных 0.9.0, отмечается регресс тестовом режиме ("регтест"), что может ускорить разработку и тестирование приложения почти мгновенно генерировать альтернативную цепочку блоков с супер-низкой сложности.
По умолчанию, регтест режиме работает на тех же портах в тестовом режиме (18333 для биткоин Р2Р, 18332 для КРМ-с JSON/HTTP и остальное), но использует другой каталог с тестовом режиме. Это означает, что две команды будут решать тестовом режиме по умолчанию или регтест узла:
биткоин-Кинк -тестовом режиме getinfo ## посылает команду в порт 18332
биткоин-Кинк -регтест getinfo ## также отправляет команду в порт 18332
Этот ответ имеет некоторые базовые примеры кода, показывающие запуск двух регтест узлов на одной машине, но вы также можете сделать что-то подобное, если вы хотите работать в тестовом режиме, узлов и регтест узел одновременно.
Пост скрипт: принято отвечать Питера Wuille это меня смущает. Он говорит, что написал его на 9 декабря 2012 года, но этого слияния Питера говорит, что он добавил код (написан @kjj2) изменение тестовом режиме, порта 18332 28 сентября 2012---за два месяца раньше. Кроме того, что код был включен в ядро биткоин 0.7.1 вышла в октябре 2012 года, еще почти два месяца раньше, чем ответ Петра.
Плечами. Я думаю, может быть, он просто забыл про сдачу.
Это может быть осуществимо в следовых количествах отправлены в адрес мошенника, но это потребует много работы, в основном общение с незнакомыми людьми, закрепить удостоверение на адрес. Эта трудность будет усугубляется занятости зеленых адреса, смешивая услуги, или простой холдинга.
Bitcoin является анонимным, что означает, что трассировка-это только так легко, как личности прослеживается позволяет.
Bitcoin-это не заменимая, смысл основной, что "монета" не является однозначно идентифицируемым. Скорее всего, это распределенная система Леже, с значения вычитаются с одного счета и добавить к другой в каждой сделке.
Таким образом, только отслеживаемые лиц на счетах получение и отправка, и только в отношении физического мира в каждой сделке-это IP-адрес. Учитывая занятость анонимизирующего услуг, таких как Тор или нижнего анонимности прокси-сервера, трассировку этого IP-адреса к физическому местоположению с человека маловероятно (если вы выяснить, как, бьюсь об заклад, вы могли бы сделать много денег от правительства!)
Если вы все еще, BlockViewer может помочь в отслеживании.
Как в сторону, это довольно безопасно сказать, что любая отправленная БТЦ потребует почти титанические усилия, чтобы вернуть. Это, безусловно, потребует привлечения правоохранительных органов, которая еще не вероятно, учили, как бороться с цифровой валютой расследования. Это подчеркивает важность сторонний депозитарий или личных отношений между покупателем и продавцом.
ID транзакции: 6a1d9ab775f6b028a037deef37723fbf506947103f2c2f6e9c32149e0dffca34
Я отправил биткоины в вышеуказанной сделки. Я пытаюсь определить, если я отправил на другой кошелек мой, или другому лицу.
Если я отправил его на другой кошелек мой, они по-прежнему там, а я не потратил их.
Когда я иду, чтобы: https://blockchain.info/tree/267511038
Я вижу, что биткоины перешли к 1Lw536Fvjg6KkCeAYetn7wopF3XEWbrY9y и 32Vh3B83zoaRUsTahWTxpmcgnNXG727u7n
Я решив, что я не отправил монеты на другой кошелек, но другим человеком, который провел их.
amiright?
Не channel_announcement
сообщение достаточно для канала рекламы? Почему announcement_signatures
сообщение требуется?
Ссылка болт #7
В "51% атаки", то есть известные уязвимости, влияющие доказательством правильности работы цифровых валют, как биткоин имеет дело с 51% от объема добычи, а не 51% в валюте.
Есть такое понятие называется "экономической большинством", но описывает как тех, кто держит монеты и покупайте новые добытой монеты партий, которые по сути есть последнее слово о том, были ли изменения в протоколе будут приняты.
Насколько вечеринку с большим количеством монет, имеющих возможность оказывать влияние на валютный курс, это правда. Это верно, хотя будь товар биткоины, золото, свинину, или любой другой товар. С возможностью открыть короткую позицию (биткоинов заимствования и их продажа), курс можно манипулировать даже владея биткоины. Теперь, является ли эта деятельность является прибыльной или нет-это совершенно другой вопрос и имеет отношение к ликвидности, сроки, отношение к риску и другие факторы, характерные для спекулянта(ы) попытка манипуляции.
В настоящее время ее дешевле создать Техас, что увеличить набор, так был хороший стимул для бумажника для создания пыли. После Segwit, это не дешевле больше, если увеличить набор.
Так что я думаю, что много кошельков уже обновили свои алгоритмы создания TX для Segwit.
Биткоин понятие не имеет никакого способа что-либо ограничивать в единое целое. Мне один человек еще в сети bitcon у меня есть несколько адресов, у меня есть несколько кошельков, которые содержат несколько адресов, я делаю несколько узлов, у меня есть несколько установок с несколькими ГПУ каждого, я использую несколько IP-адресов.
Все о сети bitcon была разработана, чтобы позволить такой сценарий пройдет. электронного голосования требует несколько концепций, которые несовместимы с текущей сети Bitcoin
1) Проверка подлинности голосующего лица (это лицо, действительный зарегистрированных избирателей). 2) держать проверенного человека анонимно. 3) обеспечить голоса не может быть дублирован 4) обеспечить подсчет голосов, является общедоступной, поддающиеся проверке, и защищен от злоупотреблений центральной власти
электронного голосования не решается "легко" купить биткоин сети. Я бы сказал eVoating не может быть решена "легко" период. Есть несколько очень нетривиальных вопросов с комбинацией указанных выше требований.
Сеть Bitcoin не поможет, чтобы гарантировать, что любой из 4 принципы выше.
Вы изменили параметр MAX_MONEY, значит нужно менять тесты, которые зависят от него.
Представляется, что это ошибочная файл.
П. С. изменение MAX_MONEY не изменится максимальное количество монет. См.: Почему не меняется MAX_MONEY изменить максимальное количество монет?
Показать вопросы с тегом transactions chain-reorganization