Каковы атомной нескольких путей платежей (Ампер) и почему/как он реализуется в сети освещения?

Там было много дискуссий и статей о том, как реализация усилителя пойдет на пользу возможностей маршрутизации в сети освещения. Какой точный вопрос, в текущей реализации молний, что усилитель решает? Как реально АМП работы? и как это будет реализовано?

+497
Peres Dixon 17 сент. 2010 г., 8:07:14
26 ответов

Как было указано, мне ArtForz в этом посте: https://bitcointalk.org/index.php?topic=44707.msg534605#msg534605 хэши хранятся в прямом порядке байтов, разделенных точками, поэтому мне сначала надо, чтобы отменять их перед двойным хешированием, а затем обратный выход обратно к вам должного результата.

+915
3MAKS3 03 февр. '09 в 4:24

Предполагаю, что это было возможно, влиять на Шахтер, чтобы создать много вилок. Мое понимание заключается в том, что Шахтер не ретранслировать развилке, но и отслеживать его внутренне.

  • Откуда эта информация сохраняется в шахтерском (диск, ОЗУ и т. д)?

  • Какие существуют меры защиты, чтобы защитить Шахтера от атаки на истощение ресурсов из-за разветвления?

+900
Steve Sanders 20 нояб. 2015 г., 14:48:06

Открыт для любых предложений... (исходный вопрос ниже, и я пробую советы из первого ответа)

Я в процессе поиска всех удаленных файлов на USB диске, где находится Многоразрядной с помощью восстановления программного обеспечения. Пытаясь определить, где и если и были какие-то секретный ключ, чтобы восстановить его.

Представляется, что закрытый ключ не был удален, нет для этого времени, поэтому он не был принят до срыва. Я помню он только начал процесс подтверждения. Я использовал кошелек нечасто. Предыдущее время в прошлом году (2014). Поскольку нет закрытого ключа, может я не восстановить кошелек как это было в О или до момента срыва и его завершения или запуска блокчейн, чтобы получить секретный ключ? Есть множество файлов бумажник, который я вижу все с датами времени, которые были удалены, которые подлежат возмещению. Я предполагаю, что это Роллинг резервного копирования бумажник файлы возможно? Я даже могу прочитать содержимое текстового и я вижу фактический адрес получения (что хочу вручную поставить в моем списке кошельков) это в бумажнике, что по-прежнему удалены и восстановить, вероятно. Я ничего не сделал как им пытаются выяснить, какие процедуры нужно делать в каком порядке, насколько ООН-удаление файлов. Я не хочу сделать больший беспорядок либо.

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

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

-----------Оригинальный вопрос ниже--------

Как я могу вручную добавить адрес получения моей многоразрядные классический кошелек? Коррупция файла информация уничтожил этот адрес. После восстановления вернуться к последней удачной копии, принимающего решения (которые я отправил на обмен) больше не отображается в мой кошелек в список получающих адрес по-моему в MultiBit кошелек. Из-за перерыва в передаче при подтверждении или отключении питания или USB отключите (сделайте ваш выбор) этот адрес исчез.

Файл Info за это время полностью повреждены из-за прерывания питания. Что, вероятно, объясняется потеря принимающего адреса. Мой вопрос и я, наверное, понятнее было о том, чтобы спросить: "как я могу вручную добавить адрес получателя на мои многоразрядные кошелек получение списка адресов??" Я знаю адрес получателя и точную сумму, как я его отправил на обмен и я могу видеть это на Blockchain как одна транзакция...просто пропускаю получения адреса в моем бумажнике и я, наблюдая это будет подтверждено, когда внезапное прерывание произошло до основных экспортных или чистый выход может произойти. Так что теперь у меня есть адрес отсутствует в списке кошелек. Файл Info для этого был совершенно нечитаемых и поврежденных. Я восстановил из предыдущих. Это было в порядке, и снова побежал в блокчейн. Однако, что верни меня назад во времени, прежде чем новый адрес был сгенерирован. Адрес не существует, конечно, из-за информацию, файл с коррупцией, которая имеет список адресов и оплаты.

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

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

+897
Krumme 30 сент. 2017 г., 7:21:48

На этом сайте показано число неподтвержденных транзакциях.

И есть API, который возвращает в формате JSON формате.

https://blockchain.info/ja/unconfirmed-transactions?format=json

Но я не мог найти графа в формате JSON.

Как я могу получить счетчик с помощью этого API?

+877
user75958 4 мар. 2019 г., 5:11:15

Вот самодостаточный скрипт на Python, который делает преобразования. Вы можете проверить свою работу по сравнению с входом в ваш закрытый ключ как "секрет экспонента" в Brainwallet. Я взял скрипт из этой ветке форума Bitcointalk и отсекаются ненужные вещи (например, код, чтобы использовать открытый ключ для подписи сообщения и проверки подписи).

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

Также обратите внимание, что нет отдельных операций здесь намного сложнее, чем ты будешь учиться в начальной/начальная школа. Есть простые сравнения < > ==, арифметические + - *, подразделение где вы заботитесь о частное /, остаток %, или как divmod, и побитового и (&, что довольно легко, если вы работаете в HEX, или могут быть реплицированы с арифметикой).

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

#! /usr/Бен/ОКР питона
# питон 2.х

класс CurveFp( объекта ):
 деф __инит__( самостоятельная, Р, А, Б ):
 самовывоз.__Р = P
 самовывоз.__а = а
 самовывоз.__б = б

 деф п( самовыдвижение ):
 вернуться самостоятельно.__п

 определение( я ):
 вернуться самостоятельно.__а

 деф б( самовыдвижение ):
 вернуться самостоятельно.__б

 деф contains_point( самовыдвижение, Х, Y ):
 возвращение ( г * г - ( х * х * х + самовывоз.__а * х + самовывоз.__б ) ) % самостоятельно.__Р == 0

точки класса( объект ):
 деф __инит__( самостоятельная, кривой, х, г, Порядок = нет ):
 самовывоз.__кривая = кривой
 самовывоз.__х = х
 самовывоз.__г = г
 самовывоз.__заказ = заказ
 если self.__кривой: заявить о себе.__кривой.contains_point( Х, Y )
 если целью: заявить о себе * порядок == бесконечность

 деф __добавить__( самовыдвижение, другое ):
 если другие == бесконечность: вернуть себя
 если self == бесконечность: возвращение других
 утверждать себя.__кривая == другие.__кривая
 если self.__х == другие.__х:
 если ( собственн.__г + других.__г ) % самостоятельно.__кривой.П() == 0:
 возврат бесконечности
другое:
 вернуться самостоятельно.двойные()

 п = собственн.__кривой.п()
 л = ( ( другие.__г - самовывозом.__г ) * \
 inverse_mod( другие.__х - я.__х, п ) ) % р
 Х3 = ( л * л - самовывоз.__х - другие.__х ) % годовых
 У3 = ( л * ( самовыдвижение.__х - Х3 ) - самостоятельно.__г ) % годовых
 Точка возврата( самовыдвижение.__кривой, Х3, У3 )

 деф __ООО__( самовыдвижение, другое ):
 деф leftmost_bit( х ):
 утверждать, х > 0
 результат = 1л
 хотя результат <= х: результат = 2 * результат
 возвращаемый результат / 2

 е = другие
 если self.__заказ: е = е % самостоятельно.__заказ
 если e == 0: возвращение бесконечности
 если self == бесконечность: возвращение бесконечности
 утверждать е > 0
 Е3 = 3 * е
 negative_self = точка( самовыдвижение.__кривой, самовывоз.__х, -самостоятельно.__г, самовывоз.__заказа )
 я = leftmost_bit( Е3 ) / 2
 результат = собственн
 при Я > 1:
 результат = результат.двойные()
 если ( Е3 & я ) != 0 и ( Е и я ) == 0: Результат = Результат + собственн
 если ( Е3 & я ) == 0 и ( Е и я ) != 0: Результат = Результат + negative_self
 я = я / 2
 возвращаемый результат

 деф __rmul__( самовыдвижение, другое ):
 вернуть себе * другой

 деф __ул.__( самовыдвижение ):
 если self == бесконечность: возвращение "бесконечность"
 возвращение "(%д,%д)" % ( самовыдвижение.__х, самовывоз.__г )

 деф двойной( самовыдвижение ):
 если self == бесконечность:
 возврат бесконечности

 п = собственн.__кривой.п()
 а = собственн.__кривой.а()
 л = ( ( 3 * самовыдвижение.__х * собственн.__х + а ) * \
 inverse_mod( 2 * самовыдвижение.__г, п ) ) % р
 Х3 = ( Л * Л - 2 * самовыдвижение.__х ) % годовых
 У3 = ( л * ( самовыдвижение.__х - Х3 ) - самостоятельно.__г ) % годовых
 Точка возврата( самовыдвижение.__кривой, Х3, У3 )

 деф х( самовыдвижение ):
 вернуться самостоятельно.__х

 деф у( самовыдвижение ):
 вернуться самостоятельно.__г

 кривая деф( самовыдвижение ):
 вернуться самостоятельно.__кривая

 приказ Дэф( самовыдвижение ):
 вернуться самостоятельно.__заказ

Бесконечность = точка( Нет, Нет, нет )

деф inverse_mod( а, м ):
 если a < 0 или M <= а: а = а % м
 С, D = а, м
 УЦ, ЭП, уд, ВД = 1, 0, 0, 1
 а c != 0:
 вопрос, С, D = divmod( D, С ) + ( с, )
 УЦ, ЭП, уд, ВД = ад - м*НЯК, ВД - М*ВК, ОК, ВК
 утверждаю Д == 1
 если UD > 0: ответный уд
 другое: возвращение уд + м

# кривая secp256k1
Р = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffffffffffffffffffffffefffffc2fl
_r = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfebaaedce6af48a03bbfd25e8cd0364141l
_b = 0x0000000000000000000000000000000000000000000000000000000000000007l
_а = 0x0000000000000000000000000000000000000000000000000000000000000000l
_Gx = 0x79BE667EF9DCBBAC55A06295CE870B07029bfcdb2dce28d959f2815b16f81798l
_Gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8l

Открытый_ключ класса( объект ):
 деф __инит__( самостоятельная, генератор, точки ):
 самовывоз.кривая = генератор.кривая()
 самовывоз.генератор = генератор
 самовывоз.точка = точка
 Н = генератор.заказа()
 если не N:
 поднять RuntimeError, "точка генератора должен быть порядок".
 если не н * точка == бесконечность:
 поднять RuntimeError, "ордена генератор плохо".
 если точка.х() < 0 или N <= точка.х() или точки.г() < 0 или N <= точка.г():
 поднять RuntimeError, "точка генератора X или Y из диапазона."

curve_256 = CurveFp( Р, _а, _b )
generator_256 = точка( curve_256, _Gx, _Gy, _r )
г = generator_256

если __имя__ == "__основной__":
 печать '======================================================================='
 ### набор привчной
 # Вики
 #секрет = 0xE9873D79C6D87DC0FB6A5778633389f4453213303da61f20bd67fc233aa33262l
 # вопрос
 секрет = 0x18E14A7B6A307F426A94F8114701E7c8e774e7f9a47e2c2035db29a206321725l

 ### принт привчной
 напечатать "секрет", "сглаз" (секрет)
 ### генерировать по умолчанию
 по умолчанию = Открытый_ключ( г, г * секрет )
 ### печати по умолчанию
 печать 'по умолчанию', шестигранные(по умолчанию.точка.х()), шестигранные(по умолчанию.точка.г())
 печать '======================================================================='

См. также еще более урезанная версия написана на C#.

класс CalcPub
{
 публичный статический пустота основной()
{
 ВАР р = типа BigInteger.Разбор("0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", NumberStyles.HexNumber);
 ВАР б = (типа BigInteger)7;
 ВАР а = типа BigInteger.Ноль;
 ВАР с GX = типа BigInteger.Разбор("79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", NumberStyles.HexNumber);
 ВАР гы = типа BigInteger.Разбор("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", NumberStyles.HexNumber);

 CurveFp curve256 = новый CurveFp(П, А, Б);
 Точка generator256 = новая точка(curve256, ГХ, гр);

 ВАР секрет = типа BigInteger.Разбор("18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725", NumberStyles.HexNumber);

 Консоль.Метода WriteLine("секрет {0}", секрет.Метод ToString("Х"));
 ВАР pubkeyPoint = generator256 * секрет;
 Консоль.Метода WriteLine("по умолчанию {0}{1}", pubkeyPoint.Х.Метод toString("х"), pubkeyPoint.Г.Метод ToString("Х"));
}
}
точки класса 
{
 публичный статический только для чтения точку бесконечности = новая точка(null, значение по умолчанию(типа BigInteger), по умолчанию(типа BigInteger));
 кривая публичных CurveFp { получить; личное набор; }
 общественного типа BigInteger Х { получить; личное набор; }
 общественного типа BigInteger г { получить; личное набор; }

 общественной точки(CurveFp кривой, типа BigInteger х, типа BigInteger г)
{
 это.Кривая = кривой;
 это.Х = х;
 это.Г = г;
}
 общественных пунктов двойной()
{
 если (это == бесконечность)
 возврата бесконечность;

 Типа BigInteger Р = этот.Кривой.п;
 BigInteger на = этом.Кривой.а;
 Типа BigInteger л = ((3 * это.Х * это.Х + а) * InverseMod(2 * Этот.Г, п)) % годовых;
 Типа BigInteger Х3 = (Л * Л - 2 * это.Х) % годовых;
 Типа BigInteger У3 = (л * (это.Х - Х3) - это.Г) % годовых;
 вернуть новую точку(это.Кривой, Х3, У3);
}
 общественного переопределить строка toString()
{
 если (это == бесконечность)
 возвращение "бесконечность";
 возвращает строку.Формат("({0},{1})", это.X, это.Г);
}
 публичный статический оператор точка +(точка слева, справа точки)
{
 если (справа == бесконечность)
 вернуться влево;
 если (слева == бесконечность)
 вернуть права;
 если (слева.Х == правильно.Х)
{
 если ((слева.Г + правый.Г) % осталось.Кривой.Р == 0)
 возврата бесконечность;
еще
 вернуться влево.Двойной();
}

 ВАР Р = левый.Кривой.п;
 ВАР я = ((справа.Г - левый.Г) * InverseMod(право.Х - левый.Х, п)) % годовых;
 ВАР Х3 = (л * л - левая.Х - правильно.Х) % годовых;
 ВАР У3 = (л * (слева.Х - Х3) - слева.Г) % годовых;
 возвращение новой точки(слева.Кривой, Х3, У3);
}
 публичный статический оператор пункта *(точка слева, справа типа BigInteger)
{
 ВАР е = вправо;
 если (е == 0 || влево == бесконечность)
 возврата бесконечность;
 ВАР Е3 = 3 * е;
 ВАР negativeLeft = новая точка(слева.Кривой, слева.Х, -слева.Г);
 ВАР я = LeftmostBit(Е3) / 2;
 ВАР результат = влево;
 а (я > 1)
{
 результат = результат.Двойной();
 если ((Е3 & я) != 0 && (e & Я) == 0)
 результат += влево;
 если ((Е3 & я) == 0 && (e & я) != 0)
 результат += negativeLeft;
 я /= 2;
}
 возврат результат;
}

 частная статического типа BigInteger LeftmostBit(типа BigInteger х)
{
 Результат BigInteger = 1;
 в то время как (результат <= х)
 результат = 2 * результат;
 возвращаемый результат / 2;
}
 частная статические InverseMod типа BigInteger(BigInteger на, типа BigInteger м)
{
 а (а < 0) а += м;
 если (a < 0 || м <= а)
 В = а % м;
 Типа BigInteger С = а;
 Типа BigInteger д = М;

 Типа BigInteger УЦ = 1;
 Типа BigInteger ВК = 0;
 Типа BigInteger уд = 0;
 Типа BigInteger ВД = 1;

 а (с != 0)
{
 Типа BigInteger Р;
 //м, с, D = divmod( D, С ) + ( с, );
 ВАР д = типа BigInteger.DivRem(Д, С, Р);
 д = с;
 С = Р;

 //УЦ, ЭП, уд, ВД = ад - м*НЯК, ВД - М*ВК, ОК, ВК;
 ВАР СРТ = УЦ;
 ВАР ДКТ = ВК;
 ВАР удт = уд;
 ВАР ВДТ = ВД;
 НЯК = удт - м * СРТ;
 ВК = ВДТ - м * ДКТ;
 уд = СРТ;
 ВД = ДКТ;
}
 если (уд > 0) возвратить уд;
 еще возвращение уд + м;
}
}
класс CurveFp
{
 общественного типа BigInteger п { получить; личное набор; }
 публичных BigInteger на { получить; личное набор; }
 общественного типа BigInteger б { получить; личное набор; }
 общественные CurveFp(п типа BigInteger, BigInteger на, типа BigInteger б)
{
 это.р = п;
 это.а = а;
 это.б = б;
}
}
+832
Gloking5 22 нояб. 2011 г., 7:42:30

Coinut теперь предлагает биткоин опционы урегулирован путем биткоинов. Вы можете торговать как бинарные или ванильные опционы. Это теперь единственный функционирования биткоин-биржа опционов.

+821
Dian Aleksandrov 29 июн. 2015 г., 22:37:08

Я пытаюсь расшифровать зашифрованный закрытый ключ от зашифрованного многоразрядные классика .файл кошелька, но полученный открытый ключ / Виф не совпадать с оригиналом.

Вот мой код:

'строгий'
ВАР фу = требуют('фу')
ВАР крипто = требуют('крипто')
ВАР алгоритме Scrypt = требуют('скрипт')
ВАР protobuf = требуют('protobufjs')
ВАР bitcore = требуют bitcore-Либ ('')
сеть ВАР = bitcore.Сетей.livenet

parseWallet функции (кошелек, ЦБ) {
 protobuf.нагрузки('биткоин.функция прото', (подстраховаться, корень) {
 если (энр) КБ(ошибаться, нуль)

 буфер ВАР = ФС.readFileSync(кошелек)
 ВАР walletMessage = корень.бумажник подстановки ('.Кошелек)
 сообщение дисп = walletMessage.расшифруйте(буфер)
 консоль.журнала('protobuf:', json-файле.преобразовать в строки(сообщение, 0, 1))

 сообщение.ключ.оператора foreach(функция (к) {
 ВАР РЭС = {}
 адреса ВАР = новый bitcore.Открытый ключ(к.открытый ключ.метод toString('Хекс'))

 РЭС.encryptionType = сообщение.encryptionType
 РЭС.по умолчанию = адрес.для(сети).метод toString()
 РЭС.Ив = к.encryptedPrivateKey.initialisationVector
 РЭС.соль = сообщение.encryptionParameters.соль
 РЭС.encryptedPrivateKey = к.encryptedPrivateKey.encryptedPrivateKey

 КБ(нуль, РЭС)
})
 // сообщение ВАР = walletMessage.расшифруйте(буфер)
})
}

parseWallet('Дэв.кошелек', функция (ошибаться, РЭС) {
 если (грешат) бросить ошибаться

 консоль.журнала('анализируется:', РЭС)
 ВАР фразу = новый буфер('dev123456')
 ВАР scryptParams = {Н: 16384, Р: 8, р: 1}
 ВАР derivedKeySize = 32
 ВАР derivedKey = алгоритме Scrypt.hashSync(пароль, scryptParams, derivedKeySize, РЭС.соль)
 ВАР расшифровать = крипто.алгоритм AES-256-CBC с createDecipheriv ('', derivedKey, РЭС.IV)в
 ВАР decryptedPrivateKey = расшифровать.обновление(РЭС.encryptedPrivateKey)

 ВАР закрытый ключ = новый bitcore.Закрытый ключ(decryptedPrivateKey.метод toString('Хекс'))
 ВАР файле publickey = закрытый ключ.toPublicKey()
 ВАР-адрес = открытый ключ.для()

 ВАР выходной = {}
 выход.decryptedPrivateKey = decryptedPrivateKey.метод toString('Хекс')
 выход.по умолчанию = адрес.метод toString()
 консоль.журнала('выход:', json-файле.преобразовать в строки(результат, 0, 0))
})

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

protobuf: {
 "networkIdentifier": "орг.биткоин.производства",
 "lastSeenBlockHash": "AAAAAAAAAAAzUIO4ArpXPqbCZNnaltVmjjswob3clb4=",
 "ключ": [
{
 "encryptedPrivateKey": {
 "initialisationVector": "CiKlKV+J1LhmMZWtiPHJKA==",
 "encryptedPrivateKey": "0C7HTASrcjsvPHxZE5OLr2MS4oFdfEC4bid81wh+prFhUunkQNb8itg4vimaBln5"
},
 "открытый ключ": "AqrhHqufQRw63h4EDHK7ylZlWktTZxANdppgun6jkwso",
 "creationTimestamp": "1486547219000"
}
],
 "encryptionType": "ENCRYPTED_SCRYPT_AES",
 "encryptionParameters": {
 "соль": "J7kt6NuBTIo="
},
 "основной номер версии": 2,
 "расширение": [
{
 "идентификатор": "орг.многоразрядные.walletProtect.2",
 "сведения": "АА==",
 "обязательные": правда
}
]
}

обработано: { encryptionType: 2,
 по умолчанию: '1MWq1EiwYh79GHu9PLnVBuPQu66Fs2ph6z',
 ИЖ: <буфер 0а 22 А5 29 5Ф 89 Д4 В8 66 31 88 95 г. н. э. Ф1 С9 28>,
 соль: <буфер 27 В9 2Д Е8 дБ 81 4С 8а>,
 encryptedPrivateKey: <буфер н0 2е С7 4С 04 АБ 72 3б 2Ф 3С 7С 59 13 93 8б АФ 63 12 Е2 81 5д 7С 40 В8 04 80 ФК Д5 61 Фе А6 В1 61 52 40 Е9 Е4 Д6 Д8 38 ФК 8а 9а составит 29 06 59 клавишу F9> }

выход: {"decryptedPrivateKey":"ae0ee2bacc68e3f67dce176a99663ced485885a45f685208794c5356c7795a25","pubKey":"1By9rGSNZDMXCv8iSaZF5BpiMnpZKx5k4e"}
+787
Lykaios 19 окт. 2019 г., 2:22:02

Выходное значение тх1 является отрицательным

Наверняка нет.

Тх2 sigScript пуст

Да, так долго, как скрипт возвращает значение true.

Сценарий Tx3 по умолчанию пусто

Да, scriptPubKey не проверяется.

Тх2 и Tx3 будут расходуемого кто-нибудь в сети, другие пользователи будут пытаться провести его мгновенно и шахтеры будут пытаться Финни атаковать его из-под вас, даже если вы делаете первую покупку с высокой платы.

+768
James Kiely 29 июн. 2012 г., 19:15:02

Я определенно не беспокоиться, что и узел второй узел и удержит узлы как можно более эффективной. Вверх, вы в конечном итоге могут предложить различные расположения узлов!!! Вы все еще можете предложить P2Pool вы под разные поддомены, например "somecountry.somecoin.URL-адрес.тлд"

+718
user3724492 15 апр. 2015 г., 4:23:24

Я вижу, что Bitocin может предоставить эскроу договора. https://en.bitcoin.it/wiki/Contracts#Example_2:_Escrow_and_dispute_mediation

Может кто-нибудь предоставить пример кода пример или еще лучше указатель.

+712
Pankaj Anand 1 июн. 2017 г., 14:57:01

Запустить "bfgminer --версия" и посмотреть, если у вас драйвер nanofury. Если вы не вы, возможно, потребуется, чтобы построить из источника (где водитель nanofury включен).

+612
Yay295 15 нояб. 2018 г., 19:33:59

Я пытаюсь скачать полиспаста и синхронизации с сетью (с помощью Bitcoin-Qt в 0.8.6). У меня есть 2-летний кошелек.DAT-файл с дроби на сумму неподтвержденных биткоины.

После того, как в течение дня, загрузив папку блоков перестала увеличиваться в размере и в 13,4 ГБ.

В debug.файл журнала следующие сообщения неоднократно показано.

хранить сиротка Техас 8d724a...ad48cfb140 (mapsz 10001)
mapOrphan переполнения, снято 1 Техас

Затем добавить другую сделку-сирот, а затем удалить еще один из бассейна. Бассейн остается на 1001.

Так и должно быть?

Сообщение в клиенте говорит, что обработано 0 из 280295 (расчетная) блокирует истории и что я 162 недель позади.

+584
Sis 23 авг. 2017 г., 13:03:55

Я использую биткоин кошелек У5.09-У5.10 на Android 6.0.1. Есть ли способ снизить биткоин плата за транзакцию?

+573
CompMan 11 мар. 2018 г., 14:38:35

Я думаю, что есть некоторая путаница о том, что "в Blockchain" означает.

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

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

+548
DNS 21 мар. 2010 г., 10:00:22

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

Ошибочное мнение: Биткойн-это не на основе протокола BitTorrent. Это не имеет ничего общего с ним. Биткоин использует peer 2 peer сети, торрент тоже. Но не были первые и все тому подобное.

Заблуждение: адрес не как закрытый ключ SSH. Адреса "как" публичный ключ (не точно, но это различие не важно сейчас). Адрес-это то, что вы даете кому-то другому, чтобы их заплатить вам.

Скрытые внутри кошелька есть закрытый ключ, а точнее в текущем кошельки: мастер-ключ, из которого несколько частных ключей. Если вы сделаете резервную копию вашего кошелька (который вы должны сделать!) вы увидите, что главный ключ: это просто список из 12 или 24 английских слов.

Адрес используется для получения биткоинов. Закрытый ключ-это то, что вам нужно уметь тратить их. Но в собственной практически невидимым для вас, вам не нужно беспокоиться, как долго, как вы есть главный ключ резервное копирование (и беречь!) правильно.

Адрес повторное использование очень приветствуется, по причинам конфиденциальности. Как только вы "использовать" адреса, кошелек автоматически будет готовить новый адрес для следующего использования.

Конкретные приложения Wallet вы используете генерирует два адреса заранее, чтобы вы начали.

Я не думаю, что вы можете удалить адрес в этом приложении.

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

+527
Adam Adame 7 февр. 2012 г., 8:53:36

Большинство из вашего вопроса описал добыча бассейн, а мотивация, чтобы сформировать одну.

Действительно, это рационально вступать в сговор, и мы видели, что одним из самых ранних событий в сети Bitcoin. См. также: Что такое майнинг пула, что он хорош?

Теперь, почему мы не видим только один бассейн? Все просто: потому что это было бы плохо для сети! Если одна сторона контролирует слишком большую часть сети, т. е. 51% от мощности майнинга, они могут контролировать транзакции в blockchain и получите 100% горнодобывающей награды. Это позволит быстро подорвать доверие в сети, и девальвировать биткоины. Для получения более подробной информации, пожалуйста, обратитесь к Что может злоумышленник с 51% хэш-мощности делать?

Поэтому шахтеры, как люди, которые много инвестировали в биткоин, заинтересованных в сохранении горно власть распространяется. Например, пул GHash.ИО послал шахтеров, когда они были выше 35% от сети мощность майнинга.

+526
MaryLMooney 16 авг. 2012 г., 14:28:44

Идея вернуть потерянные биткоины обратно на блок награды кажется отличной идеей.

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

Я не удивлюсь, если >5% от нынешней монеты в обращении были потеряны из-за неправильного обращения. На мой вопрос, почему нет-то реализуется? Я не могу найти минус для этой функции, она будет простой, как на основание недействительности монеты, которые не были переданы в Х времени, которого вероятен только для сортировки потерянные монеты.

+509
farankoshan 15 июн. 2013 г., 4:51:12

Базы по ссылкам https://github.com/bitcoin/bitcoin/blob/fcbc8bfa6d10cac4f16699d6e6e68fb6eb98acd0/src/main.h#L392 и Какие ключи используются в Blockchain levelDB (т. е. что ключ:значение пары)? Я должен просто прочитать в результаты varints. Поэтому я написал некоторый код на Python, как показано ниже. Но я не получить результаты, которые я ожидал.

Ниже мой код, чтобы расшифровать файл с файл число 0. Я просмотрю свою blk00000.дат и обнаружили, что первый блок был генезис блок и последний блок был блок 177 с blockhash 00000000480c9799dd2b35009ff1833f69690f76c26a9bea7e00cd0042f67db1.

nBlocks выглядит правильным с 134 блоков сколько блоков я нашел в blk00000.дат. nHeightFirst выглядит правильно с значение 0, но я nHeightLast не 177. nSize и nUndoSize не смотрите прямо, поскольку он не соответствует размер файла с я нашел на терминале делаешь

ЛС-л ~/.биткоин/блоки/blk00000.дат

и

ЛС-л ~/.биткоин/блоки/rev00000.дат

Также nTimeFirst не совпадает с меткой генезис блока. И nTimeLast не соответствует метка времени блока 177, который я нашел, чтобы быть с самым высоким timestamp в blk00000.дат. Что я делаю не так?

импорт plyvel
blockIndexDB = plyvel.ДБ('/дом/Крис/.биткоин/блоки/индекс')
результат = blockIndexDB.вам(б Сильф\х00\х00\х00\х00')

значение результата # от leveldb
# результат = Б'\х86\xa8%\xbe\xfe\xf4E\x88\xa5\xa7}\х00\х86\xa8r\х83\xc9\xfd по\xd5)\х83\xec\xd3\xa1N'
# hexString = б'86a825befef44588a5a77d0086a87283c9fdd52983ecd3a14e'

nBlocks = инт.from_bytes(результат[0:1], byteorder='маленький')
печать('nBlocks', nBlocks)
печати(nBlocks == 134)

ы = инт.from_bytes(результат[1:2], byteorder='маленький')
# печать('ы', ы)
nSize = инт.from_bytes(результат[2:6], byteorder='маленький')
печать('nSize', nSize)
печати(nSize == 134216389) # blk00000.дат размер файла 

ы = инт.from_bytes(результат[6:7], byteorder='маленький')
# печать('ы', ы)
nUndoSize = инт.from_bytes(результат[7:11], byteorder='маленький')
печать('nUndoSize', nUndoSize)
печати(nUndoSize == 19502205) # rev00000.дат размер файла 

nHeightFirst = инт.from_bytes(результат[11:12], byteorder='маленький')
печать('nHeightFirst', nHeightFirst)
печати(nHeightFirst == 0)
nHeightLast = инт.from_bytes(результат[12:13], byteorder='маленький')
печать('nHeightLast', nHeightLast)
печати(nHeightLast == 177)

ы = инт.from_bytes(результат[15:16], byteorder='маленький')
# печать('ы', ы)
nTimeFirst = инт.from_bytes(результат[16:20], byteorder='маленький')
печать('nTimeFirst', nTimeFirst)
печати(nTimeFirst == 1231006505) # блок 0 метки

ы = инт.from_bytes(результат[20:21], byteorder='маленький')
# печать('ы', ы)
nTimeLast = инт.from_bytes(результат[21:], byteorder='маленький')
печать('nTimeLast', nTimeLast)
# блок 177-последний блок в blk00000.DAT-файл 
печати(nTimeLast == 1231736557) # блок 177 метку
+428
germis 9 окт. 2016 г., 15:55:24

Бассейны заработать БТД через (1) блок денежное вознаграждение, которое в настоящее время 50BTC/блока и (2) операционные издержки (в настоящее время ок. .5 БТЦ / блок). Как правило, около 0,5% представлены акции несвежим. Они не имеют вероятность решения/добыча новый блок.

Чтобы ответить на ваши вопросы напрямую, оплачивая несвежие акции, в бассейне отеля, ~0.5% бонус (или как ваш залежалый тариф). Эта сумма обычно меньше, чем плата, которую они взимают. Так что эффективная ставка будет плата (ставка) - (устаревший тариф). Так что бассейн будет говорить: "я буду взимать с вас 3% и 0.5% за сталес;" в конце концов, это действительно не имеет значения если пул платит за сталес или нет.

+359
mamdooas 24 февр. 2014 г., 11:06:08

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

+285
Sean Z 23 авг. 2018 г., 19:20:13

Взгляните на http://bippy.org.

Основная потенциальная проблема я вижу с помощью тщеславие адрес для холодильных установок в трат из адреса несколько раз. Если кошелек вы используете программное обеспечение не соответствующим образом (например, с помощью РЧЦ 6979) есть вероятность, что он будет использовать тот же к стоимости за уровнем на операцию, которая позволит восстановить закрытый ключ (см. Это). Обратите внимание, что эта потенциальная проблема касается любой адрес, для которого есть более чем один провести, а не просто суета приехавших. Но я его воспитываю, в частности, вот с природы адрес тщеславия, означает вероятность многократного тратит по адресу.

+263
Ali Hosseini 5 апр. 2016 г., 11:53:31

У меня какая-то нестабильная подключение к интернету иногда она обрывается в течение часа вопрос в том , может ли тот час добычи без подсчета интернет ?

спасибо

+240
deepak marathe 1 июл. 2011 г., 16:38:12
  • P2WPKH - это расшифровывается как "плати, чтобы засвидетельствовать открытым ключом хэш" и scriptPubkey является OP_0 0x14 {20-байтный хэш}, где OP_0 версия, 0x14 байт-это размер данных, и {20-байтовый хэш} является HASH160(по умолчанию).
  • P2WSH - это расшифровывается как "плати, чтобы засвидетельствовать сценарий хэш" и scriptPubkey является OP_0 в диапазоне от 0x20 {32-байтовый хэш}, где OP_0 версия, байт 0x20-это размер данных, и {32 байта хеша} является значение SHA256(сценарий).

Эти данные взяты из: http://bcoin.io/guides/segwit.html


Примеры:

Для P2WPKH адрес: "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4"

OP_0 , 0x14 , HASH160(по умолчанию) -- выглядит (в hex):

00 14 751e76e8199196d454941c45d1b3a323f1433bd6

Для P2WSH адрес: "bc1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3qccfmv3"

OP_0 , 0х20 , то SHA256(сценарий) -- выглядит (в hex):

00 20 1863143c14c5166804bd19203356da136c985678cd4d27a1b8c6329604903262

Примеры взяты из http://bitcoin.sipa.be/bech32/demo/demo.html и https://github.com/sipa/bech32/blob/master/ref/c%2B%2B/tests.cpp

+231
Povil Ka 13 нояб. 2010 г., 0:01:46

Для Bitcoin-CLI и getblock, какая разница между "время" и "mediantime"?

Если я ищу строго возрастающей серия метки, одна лучше выбирать, чем другие?

+155
alexhayes 3 сент. 2016 г., 0:10:46

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

В фиат-валютах, как доллар США, сумма/количество денег не ограничено, т. е. банки могут создавать новые деньги из воздуха. Поэтому, когда банки выдают кредиты, они создают новые деньги из воздуха и заряд положительной процентной ставки по нему. Помните, что эту сумму проценты не существуют в экономике, когда кредит берется/дается и на сумму процентов сумм денежных средств/банкнот/монет, также созданные банками из воздуха. Так что в фиатной валюте, стоимость каждой единицы денег спускается, как проходит время за деньги/банкнот/монет увеличивается с каждым днем и так все больше деньги/банкнот/монет с каждым днем. Завтра доллар можно будет купить меньше товаров/услуг, чем сегодня и так далее.

В фиксированное количество валют, как биткоины, как люди берут в долг биткоины от других, стоимость каждой единицы биткойн растет, как проходит время. Это потому, что есть определенное количество биткоинов доступен и больше людей, требуя больше биткоинов за счет займов, будет означать, что каждая единица биткоин оценивается более. Так что в биткоинах кредиты, процентные ставки будут отрицательными. То есть, если я даю вам кредит в размере 1 BTC и заряд -10% процентная ставка по ним, я действительно платим 0.1 БТЦ каждый год! Это прямо противоположная валютная система Фиат. Сейчас в фиатной валюты экономики, если инфляция составляет, скажем, 5%, а банки берут 12% проценты по кредитам, они избили инфляции примерно на 7% каждый год, который является их прибыль. В системе Bitcoin, если "дефляция" ставка составляет -15% и банки кредит по процентной ставке -10%, они прибыли из -10% - (-15%) = 5%. В простых терминах, в то время как остальные владельцы биткоин придется отдавать 15% своих Bitcoins каждый год из-за дефляции, банк должен дать только 10% своих биткоинов, сэкономив при этом 5% каждый год.

+148
gibbypoo 7 июл. 2015 г., 5:38:25

Я работаю под Ubuntu в VirtualBox, как создать биткоин из исходников и запустить его в этой среде?

Я использую создавать заметки из ядра биткоин GitHub и я получаю следующие ошибки при попытке сделать мейк-Ф-файле.в Unix bitcoind:

чистая.ЧГК:48:15: ошибка: 'pnodeLocalHost' был признан 'Экстерн' и позже 'статический'
чистая.ч:476:15: ошибка: предыдущему объявлению 'pnodeLocalHost'
чистая.ЧГК:51:15: ошибка: 'hListenSocket' был признан 'Экстерн' и позже 'статический'
чистая.ч:479:15: ошибка: предыдущему объявлению 'hListenSocket'
сделать: *** [параметр obj/nogui/нетто.о] Ошибка 1

Любые рекомендации, как это исправить?

Я пытался закомментировав эти строки кода в сети.ч и теперь я получаю:

дБ.ЧГК:534: неопределенная ссылка на 'AddAddress(CAddress, долго долго)'
чистая.ЧГК:1363: неопределенная ссылка на 'AddAddress(CAddress, долго долго)'
главная.ЧГК:1914: неопределенная ссылка на 'AddAddress(CAddress, долго долго)'
инит.ЧГК:493: неопределенная ссылка на 'AddAddress(CAddress, долго долго)'

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

+73
IKARCHIK 30 нояб. 2013 г., 9:18:09

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