Bitcoin Forum
May 06, 2024, 11:23:42 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Формат wallet.dat  (Read 6977 times)
suppp (OP)
Sr. Member
****
Offline Offline

Activity: 288
Merit: 251



View Profile
November 01, 2011, 12:25:21 PM
 #1

Подскажите плиз, где взять спецификацию на формат файла wallet.dat ?
1715037822
Hero Member
*
Offline Offline

Posts: 1715037822

View Profile Personal Message (Offline)

Ignore
1715037822
Reply with quote  #2

1715037822
Report to moderator
1715037822
Hero Member
*
Offline Offline

Posts: 1715037822

View Profile Personal Message (Offline)

Ignore
1715037822
Reply with quote  #2

1715037822
Report to moderator
1715037822
Hero Member
*
Offline Offline

Posts: 1715037822

View Profile Personal Message (Offline)

Ignore
1715037822
Reply with quote  #2

1715037822
Report to moderator
There are several different types of Bitcoin clients. The most secure are full nodes like Bitcoin Core, which will follow the rules of the network no matter what miners do. Even if every miner decided to create 1000 bitcoins per block, full nodes would stick to the rules and reject those blocks.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Lis
Sr. Member
****
Offline Offline

Activity: 292
Merit: 251


Spice must flow!


View Profile
November 01, 2011, 02:05:32 PM
 #2

Подскажите плиз, где взять спецификацию на формат файла wallet.dat ?
Могу поделиться награбленной инфой, спецификации не видел.

You would like to thank?
btc: 14tAPpwzrfZqBeFVvfBZHiBdByYhsoFofn
suppp (OP)
Sr. Member
****
Offline Offline

Activity: 288
Merit: 251



View Profile
November 01, 2011, 02:50:32 PM
 #3

Буду очень признателен  Smiley
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
November 01, 2011, 03:25:30 PM
 #4

тоже был бы рад...

p.s. а не разместить ли эту информацию где-нибудь в вики? например тут https://en.bitcoin.it/wiki/wallet.dat

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Lis
Sr. Member
****
Offline Offline

Activity: 292
Merit: 251


Spice must flow!


View Profile
November 02, 2011, 08:12:36 AM
Last edit: November 02, 2011, 08:36:41 AM by Lis
 #5

тоже был бы рад...

p.s. а не разместить ли эту информацию где-нибудь в вики? например тут https://en.bitcoin.it/wiki/wallet.dat
К большому сожалению, не обладаю хорошими познаниями в разметке wiki знанием иностранного языка, и умением в создании документации.
Но могу ответить на ваши вопросы в теме. Быть может кто либо итогам треда заполнит wiki...

Для начала:
файл wallet.dat представляет из себя 2-х мерную таблицу

ключ | значение

не печатные символы я буду заменять * если буду отображать символ в 16-ой системе то буду ставить перед последовательностью 0x
если последовательность текстовая ставить u и заключать в ' '
знак ~ перед символами или после символов означает что перед символами или после символов означает разрыв.

В качестве ключа может выступать поле содержащее key например
0x03 u'key' ~ стандартное начало поля "ключ"
0x03 означает что следом идет 3 символа 'key' отвечающие за тип поля

ключ tx
0x02 u'tx' следом 32 символа являющиеся хешем tx которые показывает утилита опубликованная тут https://bitcointalk.org/index.php?topic=25346.msg327142#msg327142
следует учитывать что хеш в wallet.dat в отличии от BBE перевернут побайтно, т.е. 012345 => 452301

You would like to thank?
btc: 14tAPpwzrfZqBeFVvfBZHiBdByYhsoFofn
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
November 02, 2011, 11:16:04 AM
 #6

Привести к формату вики - это самое простое, я могу этим заняться.. нужна сама информация.

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

p.s. Точно помню была утилита, позволяющая весь wallet.dat экспортировать в json формат пообъектно, отредактировать его и сформировать новый файл полностью по этой информации, бегло поискал, не могу найти.

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

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Lis
Sr. Member
****
Offline Offline

Activity: 292
Merit: 251


Spice must flow!


View Profile
November 07, 2011, 08:56:26 AM
Last edit: November 07, 2011, 03:03:30 PM by Lis
 #7

в wallet.dat храниться информация следующего (известного мне) типа
tx, key, name, pool, setting, version, defaultkey.

далее будет hex значения полей ключ/значение всех типов с пояснениями

ключ tx содержит информацию о транзакции:
длинна 35 байт, дамп (02747800a18734f1701b06a53c46c63646261d3c8060708ad3e50e4da949ff20729b61)
пояснение 02 длинна ключа идущего далее, 7478 символы tx, 00a18734f1701b06a53c46c63646261d3c8060708ad3e50e4da949ff20729b61 хеш транзакции.
значение:
длинна неопределенна, дамп
(0100000001541ef309dc591e60ab88046034f4c9b53910698211859e9861baf8554cb6b74100000 0008a4730440220493c28649c7140fa7142a8567eabf5eb3082caf04266bdda54bacbf0981c14ec 0220127c7fb73efc2e42784a61a7f0f79a35a42b8f4a3258026de69dbf934c7fb887014104c127c a2c230432a89b93a6c4cbd2e8beb53d711596e0572633bb4474422e61898f0759acad51ec06b97d 2a0a82acdd84ad9aff20c80295bf3ce820d3051c232bffffffff02103e7681000000001976a914c 2a41578faf621bcebd69153cefd821e106d3be388ac40ee2d12000000001976a9145811cfd9bc24 826c2ed456e14fbd79525387bc9d88ac00000000f89c3adabac51be9204a55572cb992f610fe140 00d49f25f4a4100000000000007fe5545622aa386907d50018062e1381ff502a9418d6b431025ca 28722ea267030f9564c345a9a6fd32d4ba6038eeb4693541c4c3925d449d08ae7d350520ce09f04 6f3f4e5e9a932a0227f5493b364e11fe46b0eb2d8d01124d2e05c774ee735dd989691507b8bcef8 2d09a50d749dbabd8f6062734bfd7e3dbae544b62067ef96ae7ee1d9b46536bc84b4076395a7965 c87633d73ab0ef6fc7c86990faf4ee2f4303a9edad2be95608624a23e3043aa16c3b1679189efeb a5ce611dd6af6daaabef7d5d185550cfac3ede628d833a9de34ed4455cdc34f9a77bd88a15c5077 12500000000010b66726f6d6163636f756e7400000000000038d0d04d0001)
пояснение содержит транзакцию в том виде в котором рассылалась по сети, и содержится в блоке
01000000 версия (revers)
01 кол-во вводов в транзакцию
541ef309dc591e60ab88046034f4c9b53910698211859e9861baf8554cb6b741  хеш ввода
00000000 номер вывода из tx ввода
8a = 138 байт длинна подписи
4730440220493c28649c7140fa7142a8567eabf5eb3082caf04266bdda54bacbf0981c14ec02201 27c7fb73efc2e42784a61a7f0f79a35a42b8f4a3258026de69dbf934c7fb887014104c127ca2c23 0432a89b93a6c4cbd2e8beb53d711596e0572633bb4474422e61898f0759acad51ec06b97d2a0a8 2acdd84ad9aff20c80295bf3ce820d3051c232b подпись
ffffffff sequence
02 колличество выводов
103e768100000000 кол-во монет (revers) = 2172010000 (21.7201)
19 длинна ключа на который выводим монеты
76a914c2a41578faf621bcebd69153cefd821e106d3be388ac ключ (адрес HASH160)
40ee2d1200000000 кол-во монет (revers) = 305000000 (3.05)
19 длинна ключа на который выводим монеты
76a9145811cfd9bc24826c2ed456e14fbd79525387bc9d88ac ключ (адрес HASH160)
00000000 время блокировки tx
f89c3adabac51be9204a55572cb992f610fe14000d49f25f4a41000000000000 хеш блока содержащего tx (revers)
07fe5545622aa386907d50018062e1381ff502a9418d6b431025ca28722ea267030f9564c345a9a 6fd32d4ba6038eeb4693541c4c3925d449d08ae7d350520ce09f046f3f4e5e9a932a0227f5493b3 64e11fe46b0eb2d8d01124d2e05c774ee735dd989691507b8bcef82d09a50d749dbabd8f6062734 bfd7e3dbae544b62067ef96ae7ee1d9b46536bc84b4076395a7965c87633d73ab0ef6fc7c86990f af4ee2f4303a9edad2be95608624a23e3043aa16c3b1679189efeba5ce611dd6af6daaabef7d5d1 85550cfac3ede628d833a9de34ed4455cdc34f9a77bd88a15c507712500000000010b66726f6d61 63636f756e7400000000000038d0d04d0001 инфа об этой части данных потеряна

You would like to thank?
btc: 14tAPpwzrfZqBeFVvfBZHiBdByYhsoFofn
Lis
Sr. Member
****
Offline Offline

Activity: 292
Merit: 251


Spice must flow!


View Profile
November 07, 2011, 09:14:59 AM
 #8

ключ key содержит информацию о ключе:
длинна 70 байт, дамп (036b6579410401d6ea56cb8cf874c6c7c421a468cc32865d3618e098ac033776276206e665120c6 41174783a3da7b05254030128d30b8b0fdd597893b56ba6177f916a2d1838)
пояснение 03 длинна ключа, 6b6579 символы 'key', 410401d6ea56cb8cf874c6c7c421a468cc32865d3618e098ac033776276206e665120c641174783 a3da7b05254030128d30b8b0fdd597893b56ba6177f916a2d1838 публичный ключ
значение:
длинна 282, дамп
fd1701308201130201010420****************************************************************a081a53081a2020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f300604010004010704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141020101a1440342000401d6ea56cb8cf874c6c7c421a468cc32865d3618e098ac033776276206e665120c641174783a3da7b05254030128d30b8b0fdd597893b56ba6177f916a2d1838
пояснение
fd1701308201130201010420 константная последовательность
**************************************************************** приватный ключ
a081a53081a2020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffff ffffffffffffffffffffffefffffc2f300604010004010704410479be667ef9dcbbac55a06295ce 870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a 68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbf d25e8cd0364141020101a144034200 константная последовательность
0401d6ea56cb8cf874c6c7c421a468cc32865d3618e098ac033776276206e665120c641174783a3 da7b05254030128d30b8b0fdd597893b56ba6177f916a2d1838  публичный ключ

You would like to thank?
btc: 14tAPpwzrfZqBeFVvfBZHiBdByYhsoFofn
Lis
Sr. Member
****
Offline Offline

Activity: 292
Merit: 251


Spice must flow!


View Profile
November 07, 2011, 09:24:11 AM
Last edit: November 08, 2011, 08:37:45 AM by Lis
 #9

ключ name содержит alias адреса
дамп: (046e616d652131684e6750756f45455363514266577143596177387a4c66674d356a5944474350)
пояснение:
'04' 4 символа, '6e616d65' = name, '21' = !, '31684e6750756f45455363514266577143596177387a4c66674d356a5944474350' = 1hNgPuoEEScQBfWqCYaw8zLfgM5jYDGCP
значение:
дамп (0c77616c6c65745f7768697465)
пояснение: '0c' = 12 символов в alias, 77616c6c65745f7768697465' = 'wallet_white' это и есть alias

You would like to thank?
btc: 14tAPpwzrfZqBeFVvfBZHiBdByYhsoFofn
suppp (OP)
Sr. Member
****
Offline Offline

Activity: 288
Merit: 251



View Profile
November 07, 2011, 11:34:56 AM
 #10

Lis, спасибо!
Lis
Sr. Member
****
Offline Offline

Activity: 292
Merit: 251


Spice must flow!


View Profile
November 09, 2011, 09:18:17 AM
 #11

Lis, спасибо!
You would like to thank?
btc: 14tAPpwzrfZqBeFVvfBZHiBdByYhsoFofn

You would like to thank?
btc: 14tAPpwzrfZqBeFVvfBZHiBdByYhsoFofn
suppp (OP)
Sr. Member
****
Offline Offline

Activity: 288
Merit: 251



View Profile
November 09, 2011, 09:37:25 AM
 #12

благодарю, отправил 0.25 Smiley
btcsec
Hero Member
*****
Offline Offline

Activity: 803
Merit: 593


BITS.MEDIA


View Profile WWW
November 13, 2011, 11:45:43 AM
 #13

А как можно в кошелек вкрутить новый адрес с ключом, сгенерированный с помощью oclvanitygen, например? В особенности интересует прикручивание после шифрования кошелька в версии 0.4.0

Bits.media - криптовалюты и блокчейн по-русски
N.Z.
Sr. Member
****
Offline Offline

Activity: 427
Merit: 250



View Profile
November 13, 2011, 09:09:17 PM
 #14

А как можно в кошелек вкрутить новый адрес с ключом, сгенерированный с помощью oclvanitygen, например? В особенности интересует прикручивание после шифрования кошелька в версии 0.4.0
С помощью костылей:
How do I import the private key into bitcoin?

If you wish to spend coins received on a vanity address created by vanitygen, you must import the private key into a bitcoin client.  This process is currently quite difficult.  There are two popular methods of doing this:

  • Sipa's showwallet branch is a patch to the official bitcoin client.  It adds a new command called "importprivkey" that accepts the base-58 encoded private key.  Vanitygen has been tested to work with that version of bitcoin.  Unfortunately, to use this code, you must rebuild the bitcoin client by hand, or get a pre-built binary from a trusted source.
  • Jackjack's pywallet script is an all-in-one tool that directly modifies the wallet.dat file.  This works with a normal, unpatched bitcoin client, but does require Python with the bsddb package.
Также тут
Quote from: Bitcoin.it
As of October 2011, the easiest way to redeem a private key is on MtGox's Add Funds screen. Funds are deposited to the MtGox account after a six-confirmation wait (typically an hour or two).

Итого: патч + самостоятельная сборка, питоновский скрипт или загрузить адрес с бабками на мтгокс. В последнем случае, понятно, адрес импортируется в клиент биржи.
LZ
Legendary
*
Offline Offline

Activity: 1722
Merit: 1072


P2P Cryptocurrency


View Profile
November 14, 2011, 09:44:27 AM
 #15

PyWallet весьма удобен. Правда на поддержку шифрованного кошелька не проверял.

My OpenPGP fingerprint: 5099EB8C0F2E68C63B4ECBB9A9D0993E04143362
fruit
Legendary
*
Offline Offline

Activity: 1064
Merit: 1023


habr


View Profile
September 14, 2017, 03:54:09 AM
Last edit: September 14, 2017, 04:56:35 AM by fruit
 #16

Подскажите плиз, где взять спецификацию на формат файла wallet.dat ?
https://ru.bitcoin.it/wiki/Wallet_protocol


Сделайте сначала резервную копию wallet.dat в надёжное место!


wallet.dat должен быть не зашифрован:

$ file ./wallet.dat
./wallet.dat: Berkeley DB (Btree, version 9, native byte-order)


$ db5.3_dump ./wallet.dat |less
или
$ db5.3_dump -p./wallet.dat |less

Quote
описание

файл wallet.dat представляет собой Bdb файл в котором данные содержатся в двумерном массиве далее предоставленны типы существующих записей и из подробный анализ. Значение revers указывает на то что данные представленны для чтения в программе с переда на зад в отличии от BBE
tx

на примере http://blockexplorer.com/tx/7e341bd059cdb7dfa9a44d08a4f8d635393002aaa6d9f8f072fa8fa09154df00

    ключ hex формат

02747800df5491a08ffa72f0f8d9a6aa02303935d6f8a4084da4a9dfb7cd59d01b347e

    "колличество символов определяющие тип ключа = 2" 02
    "символы ключа (tx)" 7478
    "хеш транзакции revers" 00df5491a08ffa72f0f8d9a6aa02303935d6f8a4084da4a9dfb7cd59d01b347e

    содержание hex формат

    "ver revers = 1" 010000
    "vin_sz" 0008
    "prev_out hash revers" 1f6b109be6edadc5c3f7b096999b03dbdc3f27c4a958eebf7c0cb2291ab63fa8
    "n=15" 0f
    "" 0000008b48
    "scriptSig_1"

    далее идет разбор что представляет собой подпись в DER формате open-ssl

    "метка сигнал о начале подписи" 30
    "длинна подписи = 0x45 = 69 байт" 45
    "разделитель, далее пойдет r" 02
    "длинна r 0x21 = 33 байта" 21
    "r" 00c100f0b013c4ead3a18c3ec9ec8ea24526cc7862bcec82afa651ec030da7566e
    "разделитель, далее пойдет s" 02
    "длинна s 0x20 = 32 байта" 20
    "s" 5e558e8f9eab6f2a51c44672eaef64f7a7d268e30e5cf2b1faed3ca12e93494701
    41
    "scriptSig_2"

    далее идет разбор что представляет собой pub key в DER формате open-ssl

    04
    "x" aae7f5b9b120eb77d536b2791f650727efbbd7e5424b6c1c738f5b5fcd17d13e
    "y" f4c535ade97e8d1cdcc2c1cfcea5b159ba9072b5911120e4d308e9925d4b4df3
    "sequence" ffffffff
    "prev_out hash revers" 7fd01df47d7b4e4cf9de0e089eb2a7a4bd0701096e40db75361e1ff5046120dd

"n=1" 01 0000008b48 "scriptSig_1" 3045022100bae1f7b79d58488c032c7f1af3233e1a976e1a87102f0405865bb09e38fac28b02205 36e5f9b61073183927a8246fc92d65184e1f5de32ccc338137154e7f5a7e5f501 41 "scriptSig_2" 04e6723fb5cb12c4f8bec7f1f9a507b3e080f5063da279187cbc9a6b879ab8ce2dc7de7cccfaacd 44a5874b3255045c7c2a0102e3f073e4d3c86f73e5a1b03fc78 ffffffff "prev_out hash revers" 8cef1afb7df203eee706df2256322db6379538179fdada3942f34914662430fe "n=1" 01 0000008b48


~DefaultTrust (Trust - is fraud.)
Доверие - это разновидность мошенничества.
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


View Profile
September 15, 2017, 06:51:30 AM
 #17

Сделайте сначала резервную копию wallet.dat в надёжное место!
Фу. Некромант. Топик 6-летней давности поднял.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
ReDmiR
Hero Member
*****
Offline Offline

Activity: 543
Merit: 501


View Profile
September 16, 2017, 06:56:11 AM
 #18

Более старым пользователям этот пример не о чем не говорит, а новичкам стоило бы и почитать.  Wink
DrLexer
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
April 02, 2018, 05:48:17 PM
 #19

Да не, вполне полезный топик. Если кто еще поделится ссылочками на более подробно почитать - совсем хорошо!
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!