Bitcoin Forum
May 10, 2024, 06:49:18 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: формат адреса?  (Read 9144 times)
bitcoinex (OP)
Sr. Member
****
Offline Offline

Activity: 350
Merit: 252


probiwon.com


View Profile WWW
August 05, 2010, 08:45:20 PM
 #1

Какой формат адреса у биткоинов? Нужно для приблизительной проверки валидности адреса

New bitcoin lottery: probiwon.com
- Может, ты ещё и в Невидимую Руку Рынка веруешь? - Зачем же веровать в то, что можно наблюдать непосредственно?
The block chain is the main innovation of Bitcoin. It is the first distributed timestamping system.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
throughput
Full Member
***
Offline Offline

Activity: 158
Merit: 100


View Profile
August 06, 2010, 09:06:38 AM
 #2

Какой формат адреса у биткоинов? Нужно для приблизительной проверки валидности адреса
А там точно предусмотрена возможность error-detection, как в ИНН или ISBN?
LZ
Legendary
*
Offline Offline

Activity: 1722
Merit: 1072


P2P Cryptocurrency


View Profile
August 06, 2010, 09:21:49 AM
 #3

Разумеется, проверка есть, но, я так понял, не строгая. Вот код проверки.
Code:
    vector<unsigned char> vch;
    if (!DecodeBase58Check(psz, vch))
        return false;
    if (vch.empty())
        return false;
    unsigned char nVersion = vch[0];
    if (vch.size() != sizeof(hash160Ret) + 1)
        return false;
    memcpy(&hash160Ret, &vch[1], sizeof(hash160Ret));
    return (nVersion <= ADDRESSVERSION);
Как видим, сначала декодируется по Base58, затем извлекается номер версии адреса.

My OpenPGP fingerprint: 5099EB8C0F2E68C63B4ECBB9A9D0993E04143362
throughput
Full Member
***
Offline Offline

Activity: 158
Merit: 100


View Profile
August 10, 2010, 12:54:04 PM
 #4

Разумеется, проверка есть, но, я так понял, не строгая. Вот код проверки.
Code:
    vector<unsigned char> vch;
    if (!DecodeBase58Check(psz, vch))
        return false;
    if (vch.empty())
        return false;
    unsigned char nVersion = vch[0];
    if (vch.size() != sizeof(hash160Ret) + 1)
        return false;
    memcpy(&hash160Ret, &vch[1], sizeof(hash160Ret));
    return (nVersion <= ADDRESSVERSION);
Как видим, сначала декодируется по Base58, затем извлекается номер версии адреса.
Я надеялся на детектирование любого ошибочно введённого бита или двух-трёх-восьми Smiley
LZ
Legendary
*
Offline Offline

Activity: 1722
Merit: 1072


P2P Cryptocurrency


View Profile
September 13, 2010, 04:00:18 PM
Last edit: January 22, 2018, 05:32:24 AM by LZ
 #5

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

My OpenPGP fingerprint: 5099EB8C0F2E68C63B4ECBB9A9D0993E04143362
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!