|
Title: Формат wallet.dat Post by: suppp on November 01, 2011, 12:25:21 PM Подскажите плиз, где взять спецификацию на формат файла wallet.dat ?
Title: Re: Формат wallet.dat Post by: Lis on November 01, 2011, 02:05:32 PM Подскажите плиз, где взять спецификацию на формат файла wallet.dat ? Могу поделиться награбленной инфой, спецификации не видел.Title: Re: Формат wallet.dat Post by: suppp on November 01, 2011, 02:50:32 PM Буду очень признателен :)
Title: Re: Формат wallet.dat Post by: rPman on November 01, 2011, 03:25:30 PM тоже был бы рад...
p.s. а не разместить ли эту информацию где-нибудь в вики? например тут https://en.bitcoin.it/wiki/wallet.dat Title: Re: Формат wallet.dat Post by: Lis on November 02, 2011, 08:12:36 AM тоже был бы рад... К большому сожалению, не обладаю хорошими познаниями в разметке wiki знанием иностранного языка, и умением в создании документации.p.s. а не разместить ли эту информацию где-нибудь в вики? например тут https://en.bitcoin.it/wiki/wallet.dat Но могу ответить на ваши вопросы в теме. Быть может кто либо итогам треда заполнит 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 Title: Re: Формат wallet.dat Post by: rPman on November 02, 2011, 11:16:04 AM Привести к формату вики - это самое простое, я могу этим заняться.. нужна сама информация.
Какая информация хранится в файле - транзакции, адреса,.. что еще? какая информация доступна по каждому объекту? Есть ли связанные данные? (например есть запись адрес и есть список пар ключ-значение для этого адреса) и т.п. p.s. Точно помню была утилита, позволяющая весь wallet.dat экспортировать в json формат пообъектно, отредактировать его и сформировать новый файл полностью по этой информации, бегло поискал, не могу найти. Так вот нужны правила, позволяющие проводить подобные изменения, а так же что происходит когда совершаются типичные действия (появились транзакции, появились блоки), а не просто тут данные X там данные Y. Я понимаю вся эта информация находится в исходных текстах клиента, но читать их несколько затруднительно. Title: Re: Формат wallet.dat Post by: Lis on November 07, 2011, 08:56:26 AM в wallet.dat храниться информация следующего (известного мне) типа
tx, key, name, pool, setting, version, defaultkey. далее будет hex значения полей ключ/значение всех типов с пояснениями ключ tx содержит информацию о транзакции: длинна 35 байт, дамп (02747800a18734f1701b06a53c46c63646261d3c8060708ad3e50e4da949ff20729b61) пояснение 02 длинна ключа идущего далее, 7478 символы tx, 00a18734f1701b06a53c46c63646261d3c8060708ad3e50e4da949ff20729b61 (http://blockexplorer.com/tx/619b7220ff49a94d0ee5d38a7060803c1d264636c6463ca5061b70f13487a100) хеш транзакции. значение: длинна неопределенна, дамп (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 инфа об этой части данных потеряна Title: Re: Формат wallet.dat Post by: Lis on November 07, 2011, 09:14:59 AM ключ key содержит информацию о ключе:
длинна 70 байт, дамп (036b6579410401d6ea56cb8cf874c6c7c421a468cc32865d3618e098ac033776276206e665120c6 41174783a3da7b05254030128d30b8b0fdd597893b56ba6177f916a2d1838) пояснение 03 длинна ключа, 6b6579 символы 'key', 410401d6ea56cb8cf874c6c7c421a468cc32865d3618e098ac033776276206e665120c641174783 a3da7b05254030128d30b8b0fdd597893b56ba6177f916a2d1838 публичный ключ значение: длинна 282, дамп fd1701308201130201010420****************************************************************a081a53081a2020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f300604010004010704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141020101a1440342000401d6ea56cb8cf874c6c7c421a468cc32865d3618e098ac033776276206e665120c641174783a3da7b05254030128d30b8b0fdd597893b56ba6177f916a2d1838 пояснение fd1701308201130201010420 константная последовательность **************************************************************** приватный ключ a081a53081a2020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffff ffffffffffffffffffffffefffffc2f300604010004010704410479be667ef9dcbbac55a06295ce 870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a 68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbf d25e8cd0364141020101a144034200 константная последовательность 0401d6ea56cb8cf874c6c7c421a468cc32865d3618e098ac033776276206e665120c641174783a3 da7b05254030128d30b8b0fdd597893b56ba6177f916a2d1838 публичный ключ Title: Re: Формат wallet.dat Post by: Lis on November 07, 2011, 09:24:11 AM ключ name содержит alias адреса
дамп: (046e616d652131684e6750756f45455363514266577143596177387a4c66674d356a5944474350) пояснение: '04' 4 символа, '6e616d65' = name, '21' = !, '31684e6750756f45455363514266577143596177387a4c66674d356a5944474350' = 1hNgPuoEEScQBfWqCYaw8zLfgM5jYDGCP значение: дамп (0c77616c6c65745f7768697465) пояснение: '0c' = 12 символов в alias, 77616c6c65745f7768697465' = 'wallet_white' это и есть alias Title: Re: Формат wallet.dat Post by: suppp on November 07, 2011, 11:34:56 AM Lis, спасибо!
Title: Re: Формат wallet.dat Post by: Lis on November 09, 2011, 09:18:17 AM Lis, спасибо! You would like to thank?btc: 14tAPpwzrfZqBeFVvfBZHiBdByYhsoFofn Title: Re: Формат wallet.dat Post by: suppp on November 09, 2011, 09:37:25 AM благодарю, отправил 0.25 :)
Title: Re: Формат wallet.dat Post by: btcsec on November 13, 2011, 11:45:43 AM А как можно в кошелек вкрутить новый адрес с ключом, сгенерированный с помощью oclvanitygen, например? В особенности интересует прикручивание после шифрования кошелька в версии 0.4.0
Title: Re: Формат wallet.dat Post by: N.Z. on November 13, 2011, 09:09:17 PM А как можно в кошелек вкрутить новый адрес с ключом, сгенерированный с помощью oclvanitygen, например? В особенности интересует прикручивание после шифрования кошелька в версии 0.4.0 С помощью костылей:How do I import the private key into bitcoin? Также тут (https://en.bitcoin.it/wiki/Private_key)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:
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). Итого: патч + самостоятельная сборка, питоновский скрипт или загрузить адрес с бабками на мтгокс. В последнем случае, понятно, адрес импортируется в клиент биржи. Title: Re: Формат wallet.dat Post by: LZ on November 14, 2011, 09:44:27 AM PyWallet весьма удобен. Правда на поддержку шифрованного кошелька не проверял.
Title: Re: Формат wallet.dat Post by: fruit on September 14, 2017, 03:54:09 AM Подскажите плиз, где взять спецификацию на формат файла wallet.dat ? https://ru.bitcoin.it/wiki/Wallet_protocol (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 (http://ru.wikipedia.org/wiki/Berkeley_DB) файл в котором данные содержатся в двумерном массиве далее предоставленны типы существующих записей и из подробный анализ. Значение 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 Title: Re: Формат wallet.dat Post by: amaclin1 on September 15, 2017, 06:51:30 AM Сделайте сначала резервную копию wallet.dat в надёжное место! Фу. Некромант. Топик 6-летней давности поднял.Title: Re: Формат wallet.dat Post by: ReDmiR on September 16, 2017, 06:56:11 AM Более старым пользователям этот пример не о чем не говорит, а новичкам стоило бы и почитать. ;)
Title: Re: Формат wallet.dat Post by: DrLexer on April 02, 2018, 05:48:17 PM Да не, вполне полезный топик. Если кто еще поделится ссылочками на более подробно почитать - совсем хорошо!
Title: Re: Формат wallet.dat Post by: Lis on November 12, 2025, 01:42:25 PM благодарю, отправил 0.25 :) В этом году расчехлил эти монеты))) |