Когда IP-адрес в *новый* таблица перезаписывается?

Я читаю адрес управление биткоин основной реализации. Есть одна вещь, я не мог понять, в каком состоянии IP-адреса в новой таблице узла перезаписывается?

В частности, когда узел слышит о новом коллеге, он добавляет IP адрес в слот в новой таблице, если слот занят, он проверяет, если существующие isTerrible: https://github.com/bitcoin/bitcoin/blob/master/src/addrman.cpp#L309

если (infoExisting.IsTerrible() || (infoExisting.nRefCount > 1 && pinfo->nRefCount == 0))

Что nRefCount? Какая идея за этим стоит проверить?

+153
user315508 11 мая 2013 г., 2:46:21
20 ответов

Как pszTimestamp от Zclassic генерируемый, а что это значит ?

Zclassic860413afe207aa173afee4fcfa9166dc745651c754a41ea8f155646f5aa828ac

Любая идея?

Же шифрование используется в ЭТА и Zcash.

+960
Pavel Supruniuk 03 февр. '09 в 4:24

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

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

+959
Nathalie Boulay 4 дек. 2018 г., 15:04:30

Биткоин открытые ключи являются просто точками на эллиптической кривой secp256k1. Каждая точка имеет координаты X и значение Y, и (несжатого) открытый ключ кодируется с 0х04 , чтобы показать, что это несжатый открытым ключом в отличие от сжатого или другие, а затем по X и y, каждый 32 байт. В 0х04 - это просто префикс, ключ сам по себе является точкой на кривой.

Есть 2 интерпретации первого и последнего ключей, которые я вижу. Или вы имеете в виду "первый" ключ, соответствующий закрытому ключу от 0х01, или ключ с минимальное значение X и y. кривая secp256k1 является кривой y2 = х3 + 7, так что любые значения X и y, которые удовлетворяют этому уравнению (остаток от деления на простое число p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F [Реф]) действительная точка на кривой и, таким образом, открытым ключом. Итак, х=0, г=1 не является корректным точки, потому что она не удовлетворяет этому уравнению.

+899
pupkinson2000 3 мая 2010 г., 20:10:28

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

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

Элементы скриптового языка, ссылки в этом направлении включают в себя наличие OP_CODESEPARATOR, и оригинальное исполнение модели работает scriptSig + scriptPubKey на одном дыхании, а не по отдельности как это делается сейчас.

+893
Kunu Das 31 мар. 2011 г., 22:55:07

Если вы хотите просмотреть детали сделки, вы можете искать его (используя идентификатор транзакции или отправке или получении адреса) на блок обозреватель веб-сайта, такие как blockchain.info.

Если у вас есть понимание уплаченной пошлины, в сатоши за байт, можно увидеть, где что подходит число операций, используя сайт, который анализирует неподтвержденные транзакции и свои гонорары, как Johoe по Mempool статистики

Дальнейшие подробности о том, что делать доступны на канонический вопрос о неподтвержденных операций.

+828
Jacob Thomson 28 янв. 2016 г., 0:47:58

Я нашел этот Python скрипт на гитхабе.

Он генерирует пару приватный ключ и адрес.

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

Я не имею много знаний о криптологии. Можете ли вы проверить, если скрипт безопасен?

#!/usr/Бен/ОКР питона
# Joric/биткоин-Дэв июня 2012 года, Общественное достояние

импорт hashlib
импорт под
импорт под.утиль
импорт Сыс

протокол SSL = под.cdll.Функция LoadLibrary (под.утиль.find_library ('протокол SSL') или 'libeay32')

деф check_result (вал, функции, аргументы):
 если val == 0: поднять ValueError 
 другое: возвращение под.c_void_p (Вэл)

протокол SSL.EC_KEY_new_by_curve_name.ресурс = под.c_void_p
протокол SSL.EC_KEY_new_by_curve_name.errcheck = check_result

основных класса:
 деф __инит__(самовыдвижение):
 NID_secp256k1 = 714
 самовывоз.к = протокол SSL.EC_KEY_new_by_curve_name(NID_secp256k1)
 самовывоз.сжатый = ложь
 самовывоз.POINT_CONVERSION_COMPRESSED = 2
 самовывоз.POINT_CONVERSION_UNCOMPRESSED = 4

деф __дель__(самовыдвижение):
 если SSL:
протокол SSL.EC_KEY_free(самовыдвижение.к)
 самовывоз.к = нет

деф генерировать(самовыдвижение, секрет=нет):
 если секрет:
 самовывоз.prikey = секрет
 priv_key = протокол SSL.BN_bin2bn(секрет, 32, протокол SSL.BN_new())
 группа = протокол SSL.EC_KEY_get0_group(самовыдвижение.к)
 pub_key = протокол SSL.EC_POINT_new(группа)
 СТХ = протокол SSL.BN_CTX_new()
 протокол SSL.EC_POINT_mul(группы, pub_key, priv_key, нет, нет, СТХ)
 протокол SSL.EC_KEY_set_private_key(самовыдвижение.к priv_key)
 протокол SSL.EC_KEY_set_public_key(самовыдвижение.к pub_key)
протокол SSL.EC_POINT_free(pub_key)
протокол SSL.BN_CTX_free(СТХ)
 вернуться самостоятельно.к
другое:
 возвратить протокол SSL.EC_KEY_generate_key(самовыдвижение.к)

деф get_pubkey(самовыдвижение):
 размер = протокол SSL.i2o_ECPublicKey(самовыдвижение.к 0)
 Мб = под.create_string_buffer(размер)
 протокол SSL.i2o_ECPublicKey(самовыдвижение.к Под.как byref(под.указатель(Мб)))
 возврат Мб.сырье

деф get_secret(самовыдвижение):
 БН = по протоколу SSL.EC_KEY_get0_private_key(самовыдвижение.к);
 байт = (протокола SSL.BN_num_bits(БН) + 7) / 8
 Мб = под.create_string_buffer(байт)
 Н = протокол SSL.BN_bn2bin(БН, БМ);
 возврат Мб.сырье.rjust(32, хр(0))

деф set_compressed(самовыдвижение, сжатый):
 самовывоз.сжатый = сжатый
 если сжато:
 форма = сущность.POINT_CONVERSION_COMPRESSED
другое:
 форма = сущность.POINT_CONVERSION_UNCOMPRESSED
 протокол SSL.EC_KEY_set_conv_form(самовыдвижение.к форме)

деф dhash(ы):
 возвращение hashlib.и SHA256(hashlib.и SHA256(ы).дайджест()).дайджест()

деф rhash(ы):
 Н1 = hashlib.новый('ripemd160')
Н1.обновление(hashlib.и SHA256(ы).дайджест())
 возвращение Н1.дайджест()

b58_digits = '123456789ABCDEFGHJKLMNPQRSTUVWXYzabcdefghijkmnopqrstuvwxyz'

деф base58_encode(Н):
 л = []
 в то время как n > 0:
 н р = divmod(п, 58)
л.вставить(0,(b58_digits[Р]))
 возвращение ".присоединяйтесь к(л)

деф base58_decode(ы):
 н = 0
 для CH в S:
 Н *= 58
 цифра = b58_digits.индекс(ч)
 Н += цифра
 возвращение п

деф base58_encode_padded(ы):
 РЭС = base58_encode(инт (префиксом'0x' + ы.кодировать('Хекс'), 16))
 коврик = 0
 для C в S:
 если c == ЧР(0):
 коврик += 1
другое:
перерыв
 возвращение b58_digits[0] * пусковая площадка + Рес

деф base58_decode_padded(ы):
 коврик = 0
 для C в S:
 если c == b58_digits[0]:
 коврик += 1
другое:
перерыв
 ч = '%х' % base58_decode(с)
 если LEN(ч) % 2:
 ч = '0' + ч
 РЭС = сек.декодирования('Хекс')
 возвращение ЧР(0) * коврик + Рес

деф base58_check_encode(S, версия=0):
 против = ЧР(версия) + с
 проверить = dhash(против)[:4]
 возвращение base58_encode_padded(против + чек)

деф base58_check_decode(S, версия=0):
 к = base58_decode_padded(с)
 версии v0, сведения, check0 = к[0], к[1:-4], к[-4:]
 проверка1 = dhash(версии v0 + данных)[:4]
 если check0 != проверка1:
 поднять BaseException('ошибка контрольной суммы')
 если версия != ОГА потока(v0):
 поднять BaseException('несоответствие версий')
 возвращают данные

gen_eckey деф(пароль=нет, секрет=нет ключ pkey=нет, обжатый=false, то патронов=1, версия=0):
 к = ключ()
 если фразу:
 секрет = пароль.кодировать('в кодировке utf8')
 для меня в xrange(туров):
 секрет = hashlib.и SHA256(секрет).дайджест()
 если ключ pkey:
 секрет = base58_check_decode(ключ pkey, 128+версия)
 сжатый = лен(секрет) == 33
 тайна = тайна[0:32]
к.генерировать(секрет)
к.set_compressed(сжатый)
 вернуться к

деф get_addr(к версия=0):
 по умолчанию = к.get_pubkey()
 секрет = к.get_secret()
 hash160 = rhash(по умолчанию)
 значение addr = base58_check_encode(hash160,версия)
 грузоподъемность = секрет
 если K.сжатый:
 грузоподъемность = тайный + ЧР(1)
 ключ pkey = base58_check_encode(грузоподъемность, 128+версия)
 возврат addr ключ pkey

деф перекодировать(ключ pkey,версия=0):
 полезная нагрузка = base58_check_decode(ключ pkey,128+версия)
 секрет = полезная нагрузка[:-1]
 грузоподъемность = тайный + ЧР(1)
 ключ pkey = base58_check_encode(грузоподъемность, 128+версия)
 печать get_addr(gen_eckey(ключ pkey))

тест деф(otherversion):
 # случайные сжатого
 печать get_addr(gen_eckey(сжатый=правда,версия=otherversion),версия=otherversion)

 # раскомментируйте это для создания адресов через другой метод
 # случайные несжатого
 #печать get_addr(gen_eckey())
 # по секрету
 #печать get_addr(gen_eckey(секрет=('%064x' % 0xdeadbabe).декодирования('Хекс')))
 # на фразу
 #печать get_addr(gen_eckey(пароль='Сатоси Накамото'))
 # частные ключ
 #печать get_addr(gen_eckey(5K1HkbYffstTZDuV4riUWMbAMkQh57b8798uoy9pxyudyeuhe7f ключ pkey=''))
 #печать get_addr(gen_eckey(L3ATL5R9Exe1ubuAnHVgNgTKZEUKkDvWyawklucyyvzzxrjtgyfe ключ pkey=''))

 # раскомментируйте, чтобы перекодировать собственный ключи, созданные на более ранних версиях этот скрипт
#перекодировать(Сыс.аргумент argv[1])

если __имя__ == '__главный__':
 импорт optparse
 парсер = optparse.OptionParser(использование="%прог [параметры]")
 парсер.add_option("--otherversion", дест="otherversion", по умолчанию=0,
 помощи="Создать адрес с другим номером версии")
 (опции, аргументы) = парсер.parse_args()

тест(инт(варианты.otherversion))
+814
user2444238 7 апр. 2014 г., 17:43:27

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

есть ли способ, чтобы получить Bitcoins? спасибо!

+775
Subhra Bikash Behera 3 июл. 2017 г., 0:52:38

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

Я знаю, что этот HTML генерируется на лету, от abe.py? Я пробовал редактировать, но это не влияет мою страницу на всех.

+748
Andrew Aylett 22 авг. 2014 г., 12:36:45

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

+740
Leroy Fenyengenye 24 янв. 2017 г., 7:15:28

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

+701
Run CMD 17 мар. 2010 г., 6:35:14

Есть замок для каждой сделки? и отправитель также прикрепите свою цифровую подпись к этой транзакции?

Когда эта сделка доходит до шахтеров, то как они проверяют данная сделка является действительной.

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

+657
Jaks1861 16 дек. 2015 г., 20:16:00

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

В настоящее время я получаю сообщение об ошибке после выполнения следующего кода через узел generate_wallet.js

ВАР bip32 = требуют('bip32')
ВАР bitcoinjs = требуют bitcoinjs-Либ ('');

ВАР привчной = процесс.ОКР.BIP32_PRIV;
ВАР hdNode = bitcoinjs.HDNode.fromBase58(привчной);

ВАР количество = процесс.ОКР.GENERATE_ADDRESSES ? parseInt(процесс.ОКР.GENERATE_ADDRESSES) : 1000; // сколько адресов смотреть


ВАР пересканировать = "ложь";

для (ВАР я = 1; я <= граф; я++) {
 консоль.журнала('биткоин-Кинк importprivkey' + hdNode.извлекать(я).ключей.toWIF() + """ + сканирование)
}

Ошибки:

консоль.журнала('биткоин-Кинк importprivkey' + hdNode.извлекать(я).ключей.toWIF(L4tvCJoE9nxFnmZ4znCDvpqMLo9m8ybpazxde4zkwdafbqem8jsr) + """ + сканирование)
^

Ошибку TypeError: toWIF не удается прочитать свойство ' не определено
 на объект.<аноним> (/корневой/bustabit-депонента/ГРЦ/generate_wallet.ДШ:13:71)
 на модуле._compile (внутренний/модули/КВН/погрузчик.ДШ:736:30)
 в Object.Module._extensions..js (внутренний/модули/КВН/погрузчик.ДШ:747:10)
 на модуле.загрузки (внутренняя/модули/КВН/погрузчик.ДШ:628:32)
 в tryModuleLoad (внутренний/модули/КВН/погрузчик.ДШ:568:12)
 на функции.Модуль._load (внутренний/модули/КВН/погрузчик.ДШ:560:3)
 на функции.Модуль.runMain (внутренний/модули/КВН/погрузчик.ДШ:801:12)
 в executeUserCode (внутренний/загрузки/узел.ДШ:526:15)
 в startMainThreadExecution (внутренний/загрузки/узел.ДШ:439:3)
корень@в Ubuntu:~/bustabit-депонента/КГД#

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

+598
Player110 30 окт. 2015 г., 1:15:16

Там уже есть бассейн с той информацией, которую вы готовы построить: в UTXO набор. Вы можете получить доступ к нему путем запроса LevelDB расположенном в .биткоин/chainstate полного узла.

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

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

+433
Kelvin Duncan 11 нояб. 2017 г., 3:12:02

Любой сильной криптографии хэш-функции может быть использован в качестве военнопленных

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

+247
sgwill 23 мая 2019 г., 8:07:15

https://github.com/blockchain/api-v1-client-php <== PHP файлов им работать.

Когда я делаю мой первый тест с этим новым API я начинаю с иниц

<?В PHP
// Включать autoload.php из каталога поставщика 
требуют 'vendor/autoload.php'

// Создание экземпляра базы блокчейн класс 
$Блокчейн = новый \блокчейн\Блокчейн();

// Необходимо перед вызовом $блокчейн->кошелек или $блокчейн->создать
$Блокчейн->setServiceUrl('http://localhost:3000');
?>

Но когда я это делаю он говорит...

"Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный '$блокчейн' (T_VARIABLE) в C:\xampp\htdocs\bitcoin\index.php в строке 6"

Пакет композитор был составлен правильно и в корневой папке.

+243
Asaed Saed 30 мар. 2012 г., 19:54:38

Я сделал кошелек лет назад. Он имеет хорошее количество биткоин, потом я вытер и продал свой ноутбук. Теперь я как-то нашел мой бумажник-адрес открытый ключ. Можно ли получить закрытый ключ каким-то образом?

+203
Chomp Daddy 9 янв. 2011 г., 13:20:42

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

В настоящее время blockchain.info я вижу только 1 адрес в то время. Было бы замечательно, если бы был графический инструмент, который показывает, как монеты получить разогнался и провел.

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

+181
Carol Ann Johns 22 дек. 2011 г., 11:44:10

Я пытаюсь купить биткоины, и я только недавно получил мой банковский счет verfied на coinbase.com и я пытаюсь купить биткоины.

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

Внимание! Мы превзошли наши обычные ограничения на покупку на сегодня. Если вы хотели еще бы покупку вы получите цены на рынке биткоина на Во вторник 16 апреля 2013 года, в 08:24НА ФДТ после Ваши средства уже пришли. подробнее

Когда я нажмите кнопку Подробнее, он просто говорит мне

Из-за более высоких, чем обычные объемы покупки, мы не можем предоставить точную ценовые предложения прямо сейчас.

Вместо того, чтобы полностью останавливаясь покупает, мы решили дать людям возможность для покупки биткоинов по рыночной цене в течение нескольких дней. Как только ваш доллар поступят средства, мы обменяем их на Bitcoin по рыночной цене на примерно во вторник апр 16, 2013 в 08:24НА ФДТ.

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

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

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

Я правильно о том, что эта функция? и если я, как мне этим воспользоваться?

+149
ctag 28 апр. 2018 г., 11:16:52

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

Например - Если законопроект будет 50$, то вы можете создать транзакцию с одним раз ID кошелек от 50 $получить. И как только клиент оплачивает сумму, он появится в вашей бумажник с ID транзакции.

Дайте мне знать, если это помогает!

+103
FrCr 13 июн. 2015 г., 9:37:26

Все принадлежит к той же приложения (биткоин-ядра) вы можете скачать его с bitcoin.org

биткоин-Кварты Qt является кросс-платформенных приложений и структура интерфейса для разработчиков на C++. Это используется для пользовательского интерфейса в Bitcoin-Qt на. См http://qt-project.org/.

биткоин-Кинк

интерфейса командной строки интерфейс командной строки

bitcoind

Bitcoind-это демон безголовой, а также связки инструмента тестирования для одного демона. Он обеспечивает с помощью JSON-RPC интерфейс, позволяющий управлять локально или удаленно, что делает его полезным для интеграции с другим программным обеспечением или в крупных платежных систем

биткоин-протокол RPC

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

демон Работает Bitcoin в фоновом режиме (режим демона)

+13
Orhan Bayhan 10 апр. 2018 г., 7:19:27

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