diff --git a/dev-website-docs/_navbar.md b/dev-website-docs/_navbar.md index 21783782..3fcb616d 100644 --- a/dev-website-docs/_navbar.md +++ b/dev-website-docs/_navbar.md @@ -4,3 +4,4 @@ - [:cn: 中文](/docs-cn/) - [:kr: 한국어](/docs-kr/) - [:jp: 日本語](/docs-jp/) + - [:tr: Türkçe](/docs-tr/) diff --git a/dev-website-docs/docs-cn/_navbar.md b/dev-website-docs/docs-cn/_navbar.md index 5a76c6ee..0da0b05a 100644 --- a/dev-website-docs/docs-cn/_navbar.md +++ b/dev-website-docs/docs-cn/_navbar.md @@ -4,3 +4,4 @@ - [:cn: 中文](/docs-cn/) - [:kr: 한국어](/docs-kr/) - [:jp: 日本語](/docs-jp/) + - [:tr: Türkçe](/docs-tr/) diff --git a/dev-website-docs/docs-en/_navbar.md b/dev-website-docs/docs-en/_navbar.md index 21783782..3fcb616d 100644 --- a/dev-website-docs/docs-en/_navbar.md +++ b/dev-website-docs/docs-en/_navbar.md @@ -4,3 +4,4 @@ - [:cn: 中文](/docs-cn/) - [:kr: 한국어](/docs-kr/) - [:jp: 日本語](/docs-jp/) + - [:tr: Türkçe](/docs-tr/) diff --git a/dev-website-docs/docs-jp/_navbar.md b/dev-website-docs/docs-jp/_navbar.md index 21783782..3fcb616d 100644 --- a/dev-website-docs/docs-jp/_navbar.md +++ b/dev-website-docs/docs-jp/_navbar.md @@ -4,3 +4,4 @@ - [:cn: 中文](/docs-cn/) - [:kr: 한국어](/docs-kr/) - [:jp: 日本語](/docs-jp/) + - [:tr: Türkçe](/docs-tr/) diff --git a/dev-website-docs/docs-kr/_navbar.md b/dev-website-docs/docs-kr/_navbar.md index 3a06c579..5f5a42c4 100644 --- a/dev-website-docs/docs-kr/_navbar.md +++ b/dev-website-docs/docs-kr/_navbar.md @@ -3,4 +3,5 @@ - [:cn: 中文](/docs-cn/) - [:kr: 한국어](/docs-kr/) - [:jp: 日本語](/docs-jp/) + - [:tr: Türkçe](/docs-tr/) diff --git a/dev-website-docs/docs-tr/QuickGuide/01-akilli-sozlesme-hata-ayiklama.md b/dev-website-docs/docs-tr/QuickGuide/01-akilli-sozlesme-hata-ayiklama.md new file mode 100644 index 00000000..0948cd07 --- /dev/null +++ b/dev-website-docs/docs-tr/QuickGuide/01-akilli-sozlesme-hata-ayiklama.md @@ -0,0 +1,91 @@ +## SmartX Sürümleri + +[SmartX](https://smartx.ont.io), en gelişmiş özellikleri ve kararlı geliştirme deneyimini sunan resmi olarak yayınlanmış sürümdür. + +[SmartX beta](https://smartxbeta.ont.io), en yeni özellikleri içeren beta sürümdür. Ancak bazı hatalar içerebilir; bu hatalar önce SmartX topluluk sürümünde düzeltilir. + +[SmartX debug](http://smartxdebug.ont.io), açık kaynaklı topluluk sürümüdür. Daha kolay geliştirme için giriş (login) özelliği kaldırılmıştır. + +## Hata Ayıklama Süreci + +#### Adım 1 - Python projesi oluşturma + +Python dilini ve boş şablonu seçin. [OEP4Sample.py](https://github.com/tonyclarking/python-template/blob/master/OEP4Sample/OEP4Sample.py) dosyasındaki kodu editöre kopyalayın. + +![step 1.png](https://upload-images.jianshu.io/upload_images/150344-cc24c675bc9a3267.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +![step 1.png](https://upload-images.jianshu.io/upload_images/150344-cdb9c5585a074881.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +#### Adım 2 - Derleme + +Akıllı sözleşmeyi derlemek için "Compile" butonuna tıklayın. ABI ve AVM üretilir, Opcode ise altta görüntülenir. + +![step2.png](https://upload-images.jianshu.io/upload_images/150344-807d1c9add5be98f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +#### Adım 3 - Kesme noktası (breakpoint) belirleme + +Satır numarasının solundaki alana tıklayın; kırmızı bir kesme noktası görünecektir. + +![step3.png](https://upload-images.jianshu.io/upload_images/150344-82b13a0a1c8372db.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +#### Adım 4 - Hata ayıklama modunda çalıştırma + +Önce çalıştırılacak fonksiyonu seçin, parametre tiplerini belirleyin ve parametreleri doldurun. + +Ardından "Debug Run" butonuna tıklayın. + +![step4.png](https://upload-images.jianshu.io/upload_images/150344-f890c3707e48fea4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +"Debug Run" butonuna tıkladıktan sonra "Debug run" durumu "Waiting" olarak değişir. + +#### Adım 5 - Hata ayıklama panelini kullanma + +Hata ayıklama işlemi için gezinme panelini kullanın. + +![debug panel.png](https://upload-images.jianshu.io/upload_images/150344-6b73326a3e5388e4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +Soldan sağa: + +Continue (bir sonraki kesme noktasına atla), Debug Stop, Step Over Line, Step Over Opcode, Clear (pencereyi temizle) + +## Hata Ayıklama Paneli + +Panel, mevcut akıllı sözleşme hakkında temel bilgileri gösterir. + +![5.png](https://upload-images.jianshu.io/upload_images/150344-34922a573030a17a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +Soldan sağa: + +Logs: çalıştırma sonucunu gösterir + +Evaluation Stack: o an çalıştırılmakta olan veriyi geçici olarak tutar + +Alt Stack: tüm değişkenleri saklar. Locals, değişkenleri alt stack'ten okur + +History: OP kodunun çalıştırma geçmişini gösterir + +Locals: mevcut bağlamla ilişkili yerel değişkenleri gösterir + +Storage: akıllı sözleşmenin veritabanı + +## Konsolda Parametre Değiştirme + +#### Değişken nasıl değiştirilir + +Parantez içindeki bir değeri değiştirdiğinizde, ilgili değişkenin değeri de değişir. + +![change locals.png](https://upload-images.jianshu.io/upload_images/150344-8c122e82a7d02d7d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +#### Storage nasıl değiştirilir + +Storage konsolunda herhangi bir anahtarı (key) ve karşılık gelen değerini ekleyebilir veya silebilirsiniz. + +![change storage.png](https://upload-images.jianshu.io/upload_images/150344-52aa4be649311046.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +#### Hata ayıklamada dönüştürme aracını kullanma + +Kullanmak istediğiniz fonksiyonu seçin ve veriyi ilgili alana girin. + +Tool panelinin fonksiyon listesi + +![tool panel.png](https://upload-images.jianshu.io/upload_images/150344-46e5da4eb0a4a8c1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) diff --git a/dev-website-docs/docs-tr/QuickGuide/02-gelistirmeye-baslama.md b/dev-website-docs/docs-tr/QuickGuide/02-gelistirmeye-baslama.md new file mode 100644 index 00000000..a3348b64 --- /dev/null +++ b/dev-website-docs/docs-tr/QuickGuide/02-gelistirmeye-baslama.md @@ -0,0 +1,228 @@ +# Ontology ile Geliştirmeye Başlama + +Bu rehber, Ontology üzerinde geliştirmeye sıfırdan başlamak isteyen bir +geliştiriciyi, kendi bilgisayarında çalışan bir test zinciri kurmaktan ilk +dijital kimliğini (ONT ID) ve doğrulanabilir kimlik belgesini (Verifiable +Credential) üretmeye kadar götürür. Gerçek para veya genel ağa bağlanmak +gerekmez; her şey yerelde, `testmode` ile yapılır. + +## İçindekiler + +1. [Ontology kısaca](#ontology-kısaca) +2. [Ortam hazırlığı](#ortam-hazırlığı) +3. [Kaynaktan derleme](#kaynaktan-derleme) +4. [Yerel test zinciri çalıştırma](#yerel-test-zinciri-çalıştırma) +5. [Cüzdan ve hesap oluşturma](#cüzdan-ve-hesap-oluşturma) +6. [İlk ONT ID](#ilk-ont-id) +7. [İlk Verifiable Credential](#ilk-verifiable-credential) +8. [Sonraki adımlar](#sonraki-adımlar) + +--- + +## Ontology kısaca + +Ontology, kimlik ve veri odaklı, yüksek performanslı bir genel (public) +blokzincirdir. Bilmeniz gereken birkaç kavram: + +- **ONT / ONG**: ONT, ağın staking ve yönetişim varlığıdır. ONG ise işlem + ücretlerinin (gas) ödendiği varlıktır ve ONT tutuldukça zamanla üretilir. +- **VBFT**: Ontology'nin konsensüs algoritması — VRF tabanlı, BFT ve PoS + öğelerini birleştirir. +- **ONT ID**: W3C DID (Decentralized Identifier) spesifikasyonuna dayalı, + zincir üzerinde yaşayan merkeziyetsiz kimlik. +- **Sanal makineler**: Ontology NeoVM, WasmVM ve EVM sözleşmelerini destekler. + Yani Solidity ile de, Rust/C++ (WASM) ile de sözleşme yazılabilir. + +## Ortam hazırlığı + +Bu rehber için gerekenler: + +- **Go 1.23 veya üzeri** — çekirdek Go ile yazılmıştır. + `go version` ile kontrol edin. +- **Git** +- **make** ve bir C derleyicisi (macOS'ta Xcode Command Line Tools, Linux'ta + `build-essential`) + +> Not: Çekirdek düğüm bir WASM JIT bileşeni için cgo kullanır. Bu yüzden +> `make` işlemini hedef işletim sisteminin kendisinde çalıştırın; farklı bir +> işletim sisteminden Linux ikilisi için çapraz derleme (cross-compile) +> yapmak istiyorsanız uygun bir cgo çapraz araç zinciri (toolchain) +> kurmanız gerekir. + +## Kaynaktan derleme + +```bash +git clone https://github.com/ontio/ontology.git +cd ontology +make ontology +``` + +Derleme bittiğinde dizinde `ontology` adlı bir ikili dosya oluşur. Sürümü +kontrol edin: + +```bash +./ontology --version +``` + +## Yerel test zinciri çalıştırma + +Ontology, tek düğümlü bir yerel zinciri `--testmode` ile başlatabilir. Bu +mod SOLO konsensüsü kullanır ve birkaç saniyede bir blok üretir. `testmode` +genesis'i tüm başlangıç arzını (ONT ve ONG) düğümün cüzdan hesabına verir, +bu yüzden gas için ayrıca bir şey yapmanıza gerek kalmaz. + +Önce zincirin verilerini tutacağı ayrı bir dizin oluşturun (böylece kaynak +ağacınız temiz kalır): + +```bash +mkdir -p ~/ontology-testnet +cd ~/ontology-testnet +``` + +Test zinciri bir cüzdan olmadan başlamaz. Bir sonraki adımda oluşturuyoruz. + +## Cüzdan ve hesap oluşturma + +```bash +/path/to/ontology account add -d -w ./wallet.dat +``` + +- `-d` varsayılan ayarları kullanır (ECDSA, P-256, SHA256withECDSA). +- `-w` cüzdan dosyasının yolunu belirtir. + +Komut sizden bir parola isteyecek. **Bu cüzdan yalnızca yerel test içindir; +gerçek bir değer taşımaz.** Yine de parolasını gerçek bir yerde +kullanmayın. + +Oluşan adres ve genel anahtar ekrana yazılır. Artık zinciri başlatabilirsiniz: + +```bash +/path/to/ontology --testmode --rest --restport 20334 --rpcport 20336 \ + --wallet ./wallet.dat --password --loglevel 1 +``` + +Başka bir terminalde REST API'nin çalıştığını doğrulayın: + +```bash +curl http://localhost:20334/api/v1/version +``` + +Hesabınızın bakiyesine bakın (adresi kendi adresinizle değiştirin): + +```bash +curl http://localhost:20334/api/v1/balance/ +``` + +`testmode` genesis'i sayesinde bakiye 1 milyar ONT ve büyük miktarda ONG +gösterecektir. + +## İlk ONT ID + +ONT ID, `did:ont:` ön ekiyle başlayan bir tanımlayıcıdır ve zincir üzerinde +kaydedilir. En hızlı yol CLI'dır: + +```bash +/path/to/ontology account add --ontid -w ./wallet.dat +``` + +`--ontid` bayrağı normal bir hesap yerine bir ONT ID üretir. Üretilen kimlik +henüz yereldedir; zincire kaydetmek için bir işlem gönderilir (SDK bölümüne +bakın). + +Go SDK ile programatik olarak da yapılabilir: + +```go +import ( + sdk "github.com/ontio/ontology-go-sdk" +) + +ontSdk := sdk.NewOntologySdk() +ontSdk.NewRpcClient().SetAddress("http://localhost:20336") + +wallet, _ := ontSdk.OpenWallet("./wallet.dat") +payer, _ := wallet.GetDefaultAccount([]byte("")) + +identity, _ := wallet.NewDefaultSettingIdentity([]byte("")) +// identity.ID -> "did:ont:..." + +// ONT ID'yi zincire kaydet (gas, payer hesabından ödenir) +txHash, _ := ontSdk.Native.OntId.RegIDWithPublicKey( + 2500, 20000, payer, identity.ID, payer) +ontSdk.WaitForGenerateBlock(30 * time.Second) +``` + +## İlk Verifiable Credential + +Verifiable Credential (VC), bir tarafın (issuer) başka bir taraf (holder) +hakkında imzaladığı, doğrulanabilir bir iddia kümesidir. Ontology'nin Go +SDK'sı bunu W3C VC modeline uygun şekilde üretir. + +Tipik akış: + +1. Issuer ve holder için birer ONT ID üretilir ve zincire kaydedilir. +2. Holder, imzalanmak üzere bir talep (sign request) oluşturur; issuer bunu + doğrular. +3. Issuer credential'ı oluşturur ve imzalar. +4. Credential'ın durumu (geçerli/iptal) bir sözleşmeye commit edilir. +5. Bağımsız bir doğrulayıcı; issuer'ın güvenilirliğini, tarihleri, imzayı ve + zincirdeki durumu ayrı ayrı kontrol eder. + +```go +// credentialSubject: credential'ın taşıdığı iddialar. +// ONEMLI: alanları alfabetik sırada tanımlayın. SDK, imzalanan mesaji +// yeniden serilestirdiginde struct'i alfabetik siralanan bir map'e +// donusturur; alan sirasi alfabetik degilse imza dogrulamasi basarisiz olur. +type ResearcherSubject struct { + Field string `json:"field"` + Id string `json:"id"` + Institution string `json:"institution"` + Name string `json:"name"` + Role string `json:"role"` +} + +subject := &ResearcherSubject{ + Id: holder.ID, + Name: "Ada Lovelace", + Role: "Medical Physicist", + Institution: "Demo University", + Field: "Radiation Dosimetry", +} + +req, _ := ontSdk.Credential.GenSignReq(subject, holder.ID, payer) +_ = ontSdk.Credential.VerifySignReq(req) + +expiration := time.Now().UTC().AddDate(1, 0, 0).Unix() +credential, _ := ontSdk.Credential.CreateCredential( + []string{"https://example.org/credentials/researcher/v1"}, + []string{"ResearcherCredential"}, + subject, issuer.ID, expiration, "", "", payer) + +// Zincire commit +statusAddr, _ := common.AddressFromHexString(credential.CredentialStatus.Id) +ontSdk.Credential.CommitCredential( + statusAddr, 2500, 20000, credential.Id, + issuer.ID, holder.ID, payer, payer) +ontSdk.WaitForGenerateBlock(30 * time.Second) + +// Bağımsız doğrulama +_ = ontSdk.Credential.VerifyCredibleOntId([]string{issuer.ID}, credential) +_ = ontSdk.Credential.VerifyIssuanceDate(credential) +_ = ontSdk.Credential.VerifyExpirationDate(credential) +_ = ontSdk.Credential.VerifyIssuerSignature(credential) +_ = ontSdk.Credential.VerifyStatus(credential) +``` + +Çalışan, uçtan uca bir örnek: +— issuer ve holder ONT ID üretimi, imza talebi, credential imzalama, zincire +commit ve beş bağımsız doğrulamayı bir arada gösterir. + +## Sonraki adımlar + +- **SDK'lar**: Go, TypeScript, Java ve (eski) Python SDK'ları vardır. En + bakımlı olanlar Go ve TypeScript'tir. +- **Sözleşme geliştirme**: EVM için Solidity + standart Ethereum araçları; + WASM için `ontology-wasm-cdt-rust`. +- **Resmi dokümanlar**: +- **Katkı**: Depolar altında. Küçük ve net + başlayın — dokümantasyon, kırık bağlantı, eksik örnek, sonra gerçek hata + ve özellikler. diff --git a/dev-website-docs/docs-tr/README.md b/dev-website-docs/docs-tr/README.md new file mode 100644 index 00000000..5e4e2a4d --- /dev/null +++ b/dev-website-docs/docs-tr/README.md @@ -0,0 +1,78 @@ + + + + + + docs_homepage + + + + + +

Ontology Geliştirici Rehberi

+
Ontology, yeni nesil, yüksek performanslı bir genel (public) blokzincirdir. Altyapısı ölçeklenebilir, kararlıdır ve farklı iş ihtiyaçları için düşük seviyeli özelleştirmeye izin verir. Ontology teknik topluluğuna pek çok yeni geliştirici kattık ve Developer Center'ımızı hayata geçirdik.
+ + + diff --git a/dev-website-docs/docs-tr/_coverpage.md b/dev-website-docs/docs-tr/_coverpage.md new file mode 100644 index 00000000..8931f0d2 --- /dev/null +++ b/dev-website-docs/docs-tr/_coverpage.md @@ -0,0 +1,12 @@ +![logo](_media/icon.svg) + +# docsify 4.8.5 + +> Sihirli bir dokümantasyon sitesi oluşturucu. + +- Basit ve hafif (~21kB gzip) +- Statik olarak derlenmiş html dosyası yok +- Birden fazla tema + +[GitHub](https://github.com/docsifyjs/docsify/) +[Başlarken](#docsify) diff --git a/dev-website-docs/docs-tr/_navbar.md b/dev-website-docs/docs-tr/_navbar.md new file mode 100644 index 00000000..3fcb616d --- /dev/null +++ b/dev-website-docs/docs-tr/_navbar.md @@ -0,0 +1,7 @@ + +- Language + - [:uk: English](/docs-en/) + - [:cn: 中文](/docs-cn/) + - [:kr: 한국어](/docs-kr/) + - [:jp: 日本語](/docs-jp/) + - [:tr: Türkçe](/docs-tr/) diff --git a/dev-website-docs/docs-tr/_sidebar.md b/dev-website-docs/docs-tr/_sidebar.md new file mode 100644 index 00000000..cd047c7d --- /dev/null +++ b/dev-website-docs/docs-tr/_sidebar.md @@ -0,0 +1,4 @@ + +- Hızlı Başlangıç Rehberi + - [Ontology ile Geliştirmeye Başlama](docs-tr/QuickGuide/02-gelistirmeye-baslama.md) + - [Akıllı Sözleşmede Hata Ayıklama](docs-tr/QuickGuide/01-akilli-sozlesme-hata-ayiklama.md)