Bitcoin Forum
May 06, 2024, 03:54:59 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
- Может, ты ещё и в Невидимую Руку Рынка веруешь? - Зачем же веровать в то, что можно наблюдать непосредственно?
1714967699
Hero Member
*
Offline Offline

Posts: 1714967699

View Profile Personal Message (Offline)

Ignore
1714967699
Reply with quote  #2

1714967699
Report to moderator
1714967699
Hero Member
*
Offline Offline

Posts: 1714967699

View Profile Personal Message (Offline)

Ignore
1714967699
Reply with quote  #2

1714967699
Report to moderator
1714967699
Hero Member
*
Offline Offline

Posts: 1714967699

View Profile Personal Message (Offline)

Ignore
1714967699
Reply with quote  #2

1714967699
Report to moderator
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!