Author

Topic: Bitcoin kodunu anlamak: picocoin (Read 2987 times)

sr. member
Activity: 252
Merit: 251
September 19, 2013, 08:04:25 AM
#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?
newbie
Activity: 24
Merit: 0
September 19, 2013, 07:58:51 AM
#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.
newbie
Activity: 24
Merit: 0
September 11, 2013, 01:04:12 AM
#7
Yavas, yavas .. baska projelerle ilgilendim son 2 aydir: https://github.com/hsk81/ccoin-xx adresinden takip edebilirsin.
EFS
staff
Activity: 3822
Merit: 2123
Crypto Swap Exchange
September 10, 2013, 10:55:56 PM
#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
hero member
Activity: 756
Merit: 500
July 19, 2013, 02: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
newbie
Activity: 24
Merit: 0
July 08, 2013, 05:44:01 AM
#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
newbie
Activity: 24
Merit: 0
July 04, 2013, 07:56:56 AM
#3
Linkde ki bilgiler cok degerli; tsk!  Cheesy
full member
Activity: 216
Merit: 100
July 04, 2013, 04:05:50 AM
#2
https://bitcointalksearch.org/topic/m.1999178

Bu linkteki analizler bitcoin client kodunu anlamak için oldukça faydalı. İncelemenizde faydalı olacaktır.
newbie
Activity: 24
Merit: 0
July 04, 2013, 12:52:13 AM
#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.
Jump to: