Bitcoin Forum
November 09, 2024, 01:17:53 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bitcoin kodunu anlamak: picocoin  (Read 2987 times)
hsk81 (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
July 04, 2013, 05:52:13 AM
Last edit: July 04, 2013, 08:43:55 AM by hsk81
 #1

Merhaba arkadaslar,

iki senedir BTC/LTC ile ugrasiyorum ve su aralar PPCyi de kurcalamaya basladim; her ne kadar bitcoinun alt yapisini anlamis olsamda asil kodunu dunyada gercekten yemis bitirmis insan sayisinin fazla olmadigini tahmin ediyorum. Bu sebeple C kodunu okuyup analiz etmeye basladim; yanlis ugrastigim kod bitcoinun kendi has kodu degil, ama yeni yazilmis bir versiyonu: https://github.com/jgarzik/picocoin. Amacim picocoin C kodunu C++ yada Pythona cevirip, bu BTC olayini temelden anlayip, hatta belkide kitabini yazmak. Daha yeni basladim, ve kod bazindaki bazi baglari inceliyorum su an.

C kodunun headearlar arasindaki baglar:

http://db.tt/PEBFf3be

Eger buna benzer bir ise girismis arkadasimiz varsa, bilgi alis verisine acigim; selamlar.
ghostshirt
Full Member
***
Offline Offline

Activity: 216
Merit: 100



View Profile
July 04, 2013, 09:05:50 AM
 #2

https://bitcointalk.org/index.php?topic=41718.msg1999178#msg1999178

Bu linkteki analizler bitcoin client kodunu anlamak için oldukça faydalı. İncelemenizde faydalı olacaktır.

hsk81 (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
July 04, 2013, 12:56:56 PM
 #3

Linkde ki bilgiler cok degerli; tsk!  Cheesy
hsk81 (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
July 08, 2013, 10:44:01 AM
Last edit: July 08, 2013, 07:24:58 PM by hsk81
 #4

Evet arkadaslar base58 header boeluemundeki kodu C den C++ gecirdim .. C kodu aslinda temiz, ama uzun suere Python kullandigimdan, bazen kendimi tas devrine savrulmus gibi hissediyorum. https://github.com/hsk81/ccoin-xx sitesinden ilerlememi takip edebilirsiniz. Anlasilan bitcoin kendine has
Code:
Base58
kodlamasi kullaniyor: Daha standard olan
Code:
Base64
kodlamasina goere daha "web friendly" (yani herhangi bir "string"i b'58 ile cevirdiginizde garip garip karakterler cikmiyor):

Code:
namespace Base58 {    
    GString* encode(const void *data, size_t data_length);
    GString* encode_check(unsigned char address_type, bool has_address_type,
            const void* data, size_t data_length);

    GString* decode(const char *string_in);
    GString* decode_check(unsigned char *address_type, const char *string_in);
}

Daha bu ilk adim: Anlayabildigim kadari ile "-check" ile biten fonktionlar encoding yaparken isin icine birde hash katip, cevirimin dogru olup olmadigini test ediyor. Bir sonraki adim
Code:
HexCode
ve
Code:
Util
icin test kodunu anlayip C++ cevirmek. Daha cok is var ..  Grin
OracionSeis
Hero Member
*****
Offline Offline

Activity: 756
Merit: 500


View Profile
July 19, 2013, 07:25:02 AM
 #5

Evet arkadaslar base58 header boeluemundeki kodu C den C++ gecirdim .. C kodu aslinda temiz, ama uzun suere Python kullandigimdan, bazen kendimi tas devrine savrulmus gibi hissediyorum. https://github.com/hsk81/ccoin-xx sitesinden ilerlememi takip edebilirsiniz. Anlasilan bitcoin kendine has
Code:
Base58
kodlamasi kullaniyor: Daha standard olan
Code:
Base64
kodlamasina goere daha "web friendly" (yani herhangi bir "string"i b'58 ile cevirdiginizde garip garip karakterler cikmiyor):

Code:
namespace Base58 {    
    GString* encode(const void *data, size_t data_length);
    GString* encode_check(unsigned char address_type, bool has_address_type,
            const void* data, size_t data_length);

    GString* decode(const char *string_in);
    GString* decode_check(unsigned char *address_type, const char *string_in);
}

Daha bu ilk adim: Anlayabildigim kadari ile "-check" ile biten fonktionlar encoding yaparken isin icine birde hash katip, cevirimin dogru olup olmadigini test ediyor. Bir sonraki adim
Code:
HexCode
ve
Code:
Util
icin test kodunu anlayip C++ cevirmek. Daha cok is var ..  Grin

Kolay gelsin

Time off to sleep ... ( ̄︶ ̄)~
EFS
Moderator
Legendary
*
Offline Offline

Activity: 3906
Merit: 2198


Crypto Swap Exchange


View Profile
September 11, 2013, 03:55:56 AM
 #6

Bu çalışmalar ne durumda acaba? Belli ki konuyu açan arkadaş foruma girmiyor. Acaba işi tamamen çözdü de kitabı yazmaya mı başladı? Cheesy

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
hsk81 (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
September 11, 2013, 06:04:12 AM
 #7

Yavas, yavas .. baska projelerle ilgilendim son 2 aydir: https://github.com/hsk81/ccoin-xx adresinden takip edebilirsin.
hsk81 (OP)
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
September 19, 2013, 12:58:51 PM
 #8

Evet arkadaslar, picocoin maceramiz yavas yavas ilerlemeye devam ediyor: Buguen
Code:
bloom filter
kodunu C'den C++'a port ettim; gerci bir cok sey copy & paste .. ama yinede C ile C++ ayni dil olmadigindan, port olayi kodu anlami sagliyor: Bloom filter'leri bir bilgisayarci acisindan baya ilginc bir yapi: Bir elemanin bir kuemeye ait olup olmadigini hizli bir sekilde test (probabilistic) edebiliyor; daha cok bilgi icin https://en.wikipedia.org/wiki/Bloom_filter tavsiye ederim.

Header dosyasi:
Code:
struct bloom {
GString *v_data; unsigned int n_hash_funcs;
};

namespace Bloom { // 20k items with FP rate < 0.1% or 10k items and < 0.0001%

    enum {
        MAX_FILTER_SIZE = 36000, // bytes
        MAX_HASH_FUNCS = 50,
    };

    bool init(struct bloom *bf, unsigned int n_elements, double fp_rate);
    void free(struct bloom *bf);

    void insert(struct bloom *bf, const void *data, size_t length);
    bool contains(struct bloom *bf, const void *data, size_t length);
}

Altyapi yavas yavas ortaya cikmaya basladi, ama daha cok is var: Bir sonra ki adim herhal
Code:
key
ve
Code:
keyset
kodunu incelemek olacak.
technomancer
Sr. Member
****
Offline Offline

Activity: 252
Merit: 251



View Profile
September 19, 2013, 01:04:25 PM
 #9

Evet arkadaslar, picocoin maceramiz yavas yavas ilerlemeye devam ediyor: Buguen
Code:
bloom filter
kodunu C'den C++'a port ettim; gerci bir cok sey copy & paste .. ama yinede C ile C++ ayni dil olmadigindan, port olayi kodu anlami sagliyor: Bloom filter'leri bir bilgisayarci acisindan baya ilginc bir yapi: Bir elemanin bir kuemeye ait olup olmadigini hizli bir sekilde test edebiliyor; daha cok bilgi icin https://en.wikipedia.org/wiki/Bloom_filter tavsiye ederim.

Altyapi yavas yavas ortaya cikmaya basladi, ama daha cok is var: Bir sonra ki adim herhal
Code:
key
ve
Code:
keyset
kodunu incelemek olacak.

Koddan ve programciliktan anlamam ama bu bitcoin icin kim yazdiysa super dahi birisiymis deniliyor, bu dunyaya ait olmayabilir yada zaman yolcusu olabilir gibi soylentiler var, aylardir bu kodla ugrasan birisi olarak sizcede dahice yazilmis bir sey mi bu, yoksa cryptografi ve programciliktan anlayan pek cok kisinin yapabilwcwgi birsey mi?
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!