Как сгенерировать SegWit-адрес

Как сгенерировать адрес SegWit с помощью интерфейса командной строки Bitcoin Core? Также смогу ли я выкупить эти выходы и отправить их на «устаревший» адрес? Если да, то будет ли эта вторая транзакция принята более старыми клиентами, не поддерживающими SegWit?

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

Ответы (1)

Как сгенерировать адрес SegWit с помощью интерфейса командной строки Bitcoin Core?

Вы можете использовать addwitnessaddress addr, где addr — это ваш существующий адрес P2PKH или P2SH. Он создаст адрес P2SH-P2WPKH или P2SH-P2WSH с тем же ключом/скриптом, если известно, что он действителен.

Обратите внимание, что эта команда недоступна до тех пор, пока SegWit не активен в сети, так как до этого времени такие выходы могли быть потрачены всеми.

Начиная с версии Bitcoin Core v0.16.0, адреса P2SH-P2WPKH используются по умолчанию, а addwitnessaddressRPC устарел.

Также смогу ли я выкупить эти выходы и отправить их на «устаревший» адрес?

Да.

Если да, то будет ли эта вторая транзакция принята более старыми клиентами, не поддерживающими SegWit?

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

Это означает, что мне нужно сгенерировать «устаревший» адрес, а затем передать его в addwitnessaddress, и он вернет адрес «segwit»? И я смогу отправить биткойны, полученные на этот адрес «segwit», на любой другой адрес, и старые клиенты не будут жаловаться (они «получат» эти биткойны)?
Да всем этим.
если кому-то интересно: устаревший адрес, используемый для создания адреса SegWit, и полученный адрес-свидетель имеют один и тот же закрытый ключ.
Есть ли какая-то польза от использования адреса P2SH вместо адреса P2PKH?
Зачем нужно делать эту дурацкую добавку на другой адрес? Это не имеет никакого смысла.
Он имитирует addmultisigaddress и учит кошелек искать конкретный адрес и как тратить. Первоначальная реализация SegWit имела только рудиментарную поддержку кошелька, достаточную для тестирования, но мы не хотели выполнять всю работу по реализации, если бы SegWit не активировался. Теперь это так, поэтому в следующем выпуске Bitcoin Core адреса SegWit будут установлены по умолчанию (устранение необходимости в вызове RPC и улучшенное восстановление резервной копии).
@venzen Вы бы указали адрес P2SH, если бы вам нужен адрес SegWit для условия расходов с несколькими подписями, поскольку они не могут быть выражены с помощью P2PKH.
я пробовал эти инструкции. я не скачал полную цепочку блоков. Я получаю эту ошибку: в сети не включен отдельный свидетель (код -4)
я думаю - github.com/bitcoin/bitcoin/pull/11400 решает вышеупомянутую ошибку, которую я получил.
Как сгенерировать устаревший адрес обратно из соответствующего адреса segwit? есть ли команда, как показано ниже: getlegacyaddress <segwit addr>
@Karan Похоже, это может быть отдельный вопрос.
конечно @PieterWuille. Я добавил комментарий здесь - bitcoin.stackexchange.com/questions/63472/…
«addwitnessaddress устарел и будет полностью удален в v0.17. Чтобы использовать addwitnessaddress в v0.16, перезапустите bitcoind с параметром -deprecatedrpc=addwitnessaddress. Проекты должны перейти на использование аргумента address_type команды getnewaddress или option -addresstype=[bech32|p2sh -segwit] вместо этого (код -32)" из биткойн ядра 0.16
Могу ли я по-прежнему генерировать «устаревший» адрес с ядром 0.16?
Да, беги с -addresstype=legacy.
Я открыл новый вопрос, касающийся устаревшей поддержки V0.16 bitcoin.stackexchange.com/questions/73411/…