Developing
# Geliştirme
Osmosis Daemon, CLI, Modüller hakkında bilgi edinin ve testnet veya mainnet’e katılmak için bir node oluşturun
---
https://docs.osmosis.zone/developing/
# Osmosis'te Geliştirmeye Giriş
Osmosis, ekosisteme katkıda bulunmak isteyen geliştiriciler için çeşitli alanlar sunmaktadır. Kendi Cosmwasm dApp'lerinnizi oluşturarak, Osmosois temel modüllerine katkıda bulunarak veya araçlar ve panolar oluşturarak başlayabilirsiniz.
**Osmosis Cosmwasm Geliştirme**
Osmosis & Cosmwasm ile kontratlar & dApp'ler olutuşturma
**Osmosis Temel Geliştirme**
Zincir Geliştirme, Modüller ve dahası.
**Osmosis Araçları**
Araçlar veya Panolar
**Osmosis Önyüz**
Osmosis önyüz sitesi hakkında bilgiler
---
https://docs.osmosis.zone/developing/dapps/get_started/
# Osmosis üzerinde dApp Geliştirme
:::info
CosmWasm geliştirici araçları kısa süre içerisinde erişilebilir olacak! Bu sırada, Osmosis'te CosmWasm geliştirmenin temel prensiplerini anlamak için oldukça önemli olan CLI ve Javascript kütüphaneleri ile nasıl etkileşime geçileceğine dair kılavuzlar yayınlıyoruz.
:::
## Başlangıç
**LocalOsmosis ile Cosmwasm**
Osmosis blok zincirinde kontrat birleştirme, yükleme ve etkileşime girme.
**Wasm Yönetişim Teklifi Gönderme**
Nasıl wasm binary teklifi gönderileceğine dair bir örnek.
**Testnet ile CosmWasm**
Testnet'e kontrat deploy etme.
**Osmosis Kontrat Listesi**
Osmosis'te kabul edilen kod ID'lerini içeren repository.
**İlk Kontratınız**
Resmi CosmWasm Dokümanları
## Frontend Geliştirme
**Cosmwasm & Javascript**
Node.js ve tarayıcılar gibi Javascript çalıştırıcılar ile etkileşime geçme.
**Osmosis dApp'leri Geliştirme**
Çok yakında.
## Araçlar
**Beaker**
Osmosis geliştirme ortamı. Çok yakında.
**LocalOsmosis**
Osmosis'i lokalde çalıştırın.
**OsmosJS**
Osmosis Stargate Client
**Osmosis daemon**
Osmosisd yükleme.
## Ağlar
**Local Osmosis**
Osmosis geliştirme ortamı
**Testnet'e Katılma**
Osmosis testnet'te node kurma
**Mainnet'e Katılma**
Osmosis mainnet'te node kurma
**Açık endpoint'ler**
Resmi ve üçüncü taraf API endpoint'leri
---
https://docs.osmosis.zone/developing/dapps/get_started/cosmwasm-localosmosis.html
# CosmWasm & LocalOsmosis
Aşağıda verilenler, Osmosis local ortamda bir kontrat deploy etmenin temellerini açıklamaktadır. Bu rehber aşağıdakileri içerecektir:
* İlk Kurulum
* Rust
* Osmosis yükleyici ile LocalOsmosis
* osmosisd binary, otomatik olarak localOsmosis'inize bağlanacak şekilde yapılandırılır
* $HOME dizininde localOsmosis kurulumu (~/localosmosis)
* Akıllı kontrat deploy etme
* Temel şablon bir kontrat'ın clone'lanması
* Kontratın compile edilmesi
* Kontratin optimizasyonu
* Local anahtar oluşturma
* Kontratın depolanması
* Başlatma
* Kontrat adresini alma
* Kontratı sorgulama
* Kontrat sayacını artırma
* Kontrat sayacını sıfırlama
* Kontrat durumunu alma
* Kontrat bilgisini sorgulama
* Bütün kontratları listeleme
## İlk Kurulum
Bu rehber, localOsmosis tarafından desteklenecek şekilde local Osmosis ortamınıza kontrat deploy etmek için Osmosis'e özel geliştirici araçlrından faydalanmaktadır.
### Rust Kurulumu
Rust, CosmWasm akıllı kontratlarında kullanılan temel programlama dilidir. WASM akıllı kontratları teorik olarak bütün programlama dillerinde yazılabilmesine rağmen, CosmWasm kütüphaneleri ve araçları en iyi Rust ile çalışır.
Önce, [Rust](https://www.rust-lang.org/tools/install)'ın son versiyonunu yükleyin.
Daha sonra aşağıdaki komutları çalıştırın:
```
# 1. Set 'stable' as the default release channel:
rustup default stable
# 2. Add WASM as the compilation target:
rustup target add wasm32-unknown-unknown
# 3. Install the following packages to generate the contract:
cargo install cargo-generate --features vendored-openssl
cargo install cargo-run-script
```
### LocalOsmosis Kurulumu
localOsmosis kurulumunun en kolay yolu, [otomatik yükleyiciyi](https://get.osmosis.zone/) indirmektir. localOsmosis hakkında daha ayrıntılı bilgiye resmi repo'da bulunan [README](https://github.com/osmosis-labs/localosmosis) dokümanından erişebilirsiniz.
Aşağıdaki komutu çalıştırıp opsiyon #3'ü seçin.
```
curl -sL https://get.osmosis.zone/install > i.py && python3 i.py
```

### localOsmosis'i Başlatın
Ayrı bir pencerede, ~/localosmosis2e kurulu localOsmosis'inizi başlatın.
```
cd ~/localosmosis
docker-compose up
```
Terminalde LocalOsmosis blok aktivitesini görmeye başlayacaksınız. Yeni bir terminal penceresinde ilerleyen adımları gerçekleştirirken LocalOsmosis çalışır halde kalsın.

:::info
LocalOsmosis cüzdan bilgisi için, [LocalOsmosis hesap sayfasını](https://github.com/osmosis-labs/localosmosis#accounts)) ziyaret ediniz.
:::
## Akıllı Kontrat Deploy etme
### cw-tpl-osmosis'i clone'layın
Bu örnekte, [cw-template](https://github.com/InterWasm/cw-template) repo ile oluşturulan cw-tpl-osmosis'i (CosmWasm Template Osmosis) kullanacağız.
```
git clone https://github.com/osmosis-labs/cw-tpl-osmosis
```
### Stabil toolchain ile wasm kontratını compile edin
```
rustup default stable
cargo wasm
```
Compile işlemi tamamlandıktan sonra `target/wasm32-unknown-unknown/release/cw_tpl_osmosis.wasm.` içerisinde bir dosya oluşturmalıdır. ls -lh yaptığınızda, yaklaşık 1.8MB görünmelidir. Bu build, release build'i olmasına rağmen gereksiz kodların tamamı temizlenmemiştir. Çok daha küçük bir versiyon oluşturmak için, compiler'a kullanılmayan tüm kodları sildirmek için şu komutu çalıştırabilirsiniz:
```
RUSTFLAGS='-C link-arg=-s'
cargo wasm
```
Bu işlem sonucunda, yaklaşık 149kB'lık bir dosya oluşur. Aşağıda daha fazla optimizasyon yapacağız.
### Optimize Compile
Gas maliyetlerini düşürmek açısından binary boyutu mümkün olduğunca küçük olmalıdır. Böylece deploy ederken nispeten daha az gas ödenir ve bütün etkileşimler için de ödenecek ücretler azalır. Üretim kodunu, rust-otpmizer kullanarak optimize edebilirsiniz. rust-optimizer CosmWasm akıllı kontratlarının yeniden üretilebilir build'lerini oluşturur. Böylece üçüncü taraflar, kontratın gerçekten iddia edilen koda sahip olup olmadığını doğrulayabilir.
```
sudo docker run --rm -v "$(pwd)":/code \
--mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
cosmwasm/rust-optimizer:0.12.6
```
Binary, artifacts/osmosis_cw_tpl.wasm klasöründe olacak, boyutu ise 138k olacaktır.
### Local Anahtar oluşturma
localOsmosis'te verilen tohumlardan birini kullanarak bir anahtar oluşturun.
```
osmosisd keys add <unsafe-test-key-name> --recover
```
Örnekteki test1 anahtarı [buradan](https://github.com/osmosis-labs/localosmosis#accounts):
```
notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius
```
### localOsmosis chain'inizi depolayın
Kontratı localOsmosis'e veya testnet'e deploy edebilirsiniz. Bu örnekte localOsmosis'e deploy edeceğiz.
```
cd artifacts
osmosisd tx wasm store cw_tpl_osmosis.wasm --from <unsafe-test-key-name> --chain-id=<chain-id> --gas-prices 0.1uosmo --gas auto --gas-adjustment 1.3 -b block -y
```
`<unsafe-test-key-name>` = Local anahtarınızın adı. `<chain-id>` = localosmosis
`<unsafe-test-key-name>`'i local anahtarlarınızdaki anahtar ismi ile değiştirin. `<chain-id>`'yi localosmosis veya osmo-test-4 olarak değiştirin. Yukarıdaki komutun çıktısındaki CODE_UD'yi lokal değişken olarak kaydedin. `CODE_ID=XX`
### Veya CODE_ID'yi Depolama
Yukarıdaki komutta code_id'ye bakmak yerine, aşağıdaki komutu çalıştırarak CODE_ID'yi değişken olarak ayarlayabilirsiniz.
```
TX=$(osmosisd tx wasm store cw_tpl_osmosis.wasm --from <unsafe-test-key-name> --chain-id=<chain-id> --gas-prices 0.1uosmo --gas auto --gas-adjustment 1.3 -b block --output json -y | jq -r '.txhash')
CODE_ID=$(osmosisd query tx $TX --output json | jq -r '.logs[0].events[-1].attributes[0].value')
echo "Your contract code_id is $CODE_ID"
```
Yeni bir localOsmosis instance'ı ise, `1` olmalıır.
### Kontratı somutlaştırma
```
INITIAL_STATE='{"count":100}'
osmosisd tx wasm instantiate $CODE_ID $INITIAL_STATE --amount 50000uosmo --label "Counter Contract" --from <unsafe-test-key-name> --chain-id <chain-id> --gas-prices 0.1uosmo --gas auto --gas-adjustment 1.3 -b block -y --no-admin
```
Örnek:
```
INITIAL_STATE='{"count":100}'
osmosisd tx wasm instantiate $CODE_ID $INITIAL_STATE --amount 50000uosmo --label "Counter Contract" --from c1 --chain-id localosmosis --gas-prices 0.1uosmo --gas auto --gas-adjustment 1.3 -b block -y --no-admin
```
### Kontrat adresini alma
```
CONTRACT_ADDR=$(osmosisd query wasm list-contract-by-code $CODE_ID --output json | jq -r '.contracts[0]')
```
## Kontratı Sorgulama
### Kontrat sayacını artırma
```
INCREMENT_MSG='{"increment":{}}'
osmosisd tx wasm execute $CONTRACT_ADDR "$INCREMENT_MSG" --from c1
```
### Kontrat sayacını sıfırlama
```
RESET_MSG='{"reset":{"count":0}}'
osmosisd tx wasm execute $CONTRACT_ADDR "$RESET_MSG" --from c1
```
### Kontrat durumunu alma
```
GET_STATE_MSG='{"get_count":{}}'
osmosisd query wasm contract-state smart $CONTRACT_ADDR "$GET_STATE_MSG"
```
### Kontrat bilgisini sorgulama
```
osmosisd query wasm contract $CONTRACT_ADDR
```
### Tüm kontratları listeleme
```
osmosisd query wasm list-code
```
Süper! Artık kontrat geliştirmeyi öğrenmeye başlayabilirsiniz. Bunun içn [resmi CosmWasm kontratlarını](https://docs.cosmwasm.com/docs/1.0/getting-started/intro) ziyaret edebilir ve dokümantasyonu inceledikçe Osmosis Blokzinciri ile nasıl etkileşime geçilebileceğini öğrenebilirsiniz.
---
https://docs.osmosis.zone/developing/dapps/get_started/submit_wasm_proposal.html
# Wasm Yönetişim Teklifi Gönderme
Aşağıdaki rehber, Osmosis'te nasıl wasm binary teklifi gönderileceğine dair basit bir örnek sunmaktadır. Bu örnek, localOsmosis üzerinde gösterilmiştir; ancak testnet'te de kullanılabilir.
## Localosmosis
localOsmosis kurulumunun en kolay yolu, [otomatik yükleyiciyi](https://get.osmosis.zone/) indirmektir. localOsmosis hakkında daha ayrıntılı bilgiye resmi repo'da bulunan [README](https://github.com/osmosis-labs/localosmosis) dokümanından erişebilirsiniz.
Aşağıdaki komutu çalıştırıp opsiyon #3'ü seçin.
```
curl -sL https://get.osmosis.zone/install > i.py && python3 i.py
```

### localOsmosis'i Başlatın
Ayrı bir pencerede, ~/localosmosis2e kurulu localOsmosis'inizi başlatın.
```
cd ~/localosmosis
docker-compose up
```
Terminalde LocalOsmosis blok aktivitesini görmeye başlayacaksınız. Yeni bir terminal penceresinde ilerleyen adımları gerçekleştirirken LocalOsmosis çalışır halde kalsın.

:::info
LocalOsmosis cüzdan bilgisi için, [LocalOsmosis hesap sayfasını](https://github.com/osmosis-labs/localosmosis#accounts)) ziyaret ediniz.
:::
## Örnek kontrat indirin
```
curl -s -L -O https://github.com/CosmWasm/cw-plus/releases/download/v0.12.1/cw20_base.wasm
```
## Değişkenleri tanımlayın
```
CHAIN_ID=localosmosis
CONTRACT=cw20_base
```
## Teklif ID'yi tanımlayın
Bunu programatik bir şekilde yapamıyoruz. Teklif `1`, yeni bir zincirde ilk kez gönderildikten sonra ortaya çıkacak. Aynı state'te birden fazla test gerçekleştirirken bunu manuel olarak güncelleyebilirsiniz.
```
PROPOSAL=1
```
## Tohumdan local cüzdan oluşturun
Bu tohumun zaten [şurada](https://github.com/osmosis-labs/localosmosis#accounts) gösterildiği şekilde localOsmosis'in bir parçası olduğunu belirtelim.
```
echo "satisfy adjust timber high purchase tuition stool faith fine install that you unaware feed domain license impose boss human eager hat rent enjoy dawn" | osmosisd keys add validator --keyring-backend test --recover
VAL=$(osmosisd keys show -a validator --keyring-backend test)
```
## Teklifi gönderin
```
osmosisd tx gov submit-proposal wasm-store $CONTRACT.wasm --title "Add $CONTRACT" \
--description "Let's upload this contract" --run-as $VAL \
--from validator --keyring-backend test --chain-id $CHAIN_ID -y -b block \
--gas 9000000 --gas-prices 0.025uosmo
```
## Teklifi sorgulayın
```
osmosisd query gov proposal $PROPOSAL
```
## Teklife depozito yatırın
```
osmosisd tx gov deposit $PROPOSAL 10000000uosmo --from validator --keyring-backend test \
--chain-id $CHAIN_ID -y -b block --gas 6000000 --gas-prices 0.025uosmo
```
## Oy Vermek için
```
osmosisd tx gov vote $PROPOSAL yes --from validator --keyring-backend test \
--chain-id $CHAIN_ID -y -b block --gas 600000 --gas-prices 0.025uosmo
```
## Sonuçları kontrol etmek için
Sonuçların görünmesi için bir iki dakika bekleyin.
```
osmosisd query wasm list-code
```
### Daha Fazla Bilgi için:
https://github.com/CosmWasm/wasmd/blob/main/x/wasm/Governance.md
---
https://docs.osmosis.zone/developing/dapps/get_started/cosmwasm-testnet.html#deploying-cosmwasm-contracts-to-the-testnet
# Testnet ile CosmWasm
## Testnet'e Cosmwasm Kontratlarını Deploy Etme
Bu bölüm üzerinde henüz çalışıyoruz; ancak [localOsmosis](https://docs.osmosis.zone/developing/dapps/get_started/cosmwasm-localosmosis.html) rehberini izleyerek testnet'e uyarlayabilirsiniz.
---
https://docs.osmosis.zone/developing/dapps/get_started/javascript.html#prerequisites
# Javascript & Akıllı Kontratlar
Bu rehber, Node.js ve tarayıcılar gibi Javascript çalıştırıcılar ile Osmosis Akıllı kontratlarıyla nasıl etkileşime geçileceğini açıklamaktadır.
## Ön Gereklilikler
* npm ve node.js
* localosmosis - (Mainnet'e bağlanırken gerekli değil)
* Keplr bwoser, bu rehberde henüz kullanılmamıştır
Yeni bir proje başlatın
```
npm init -y
```
Cosmwasm'ı yükleyin
```
npm i cosmwasm
```
package.json dosyasını bir kod düzenleyicide açıp aşağıdakini ekleyin
```
"type": "module",.
{
// ...
"type": "module",
// ...
}
```
Yeni bir index.ts dosyası oluşturun
```
touch index.ts
```
Class CosmWasmClient, CosmJS package @ cosmjs/cosmwasm-stargte'ten dışa aktarılmıştır. Ayrıntılı bilgi için bkz. [resmi dokümanlar](https://cosmwasm.github.io/CosmWasmJS/clients/reading/CosmWasmClient.html).
```
import { CosmWasmClient } from "cosmwasm";
// This is your rpc endpoint
const rpcEndpoint = "http://localhost:26657/";
async function main() {
const client = await CosmWasmClient.connect(rpcEndpoint);
console.log(client);
}
main();
```
:::info
Mainnet'e rpcEndpoint'i https://rpc.osmosis.zone/ ile değiştirerek de bağlanabilirsiniz. [Ayrıntılı bilgi için.](https://docs.osmosis.zone/developing/network/public-endpoints.html#official-endpoints)
:::
## Çalıştırın
```
npm index.js
```
Şöyle bir ekranla karşılaşacaksınız:

## Diğer Yöntemler
[Resmi dokümanlarda](https://cosmwasm.github.io/CosmWasmJS/clients/reading/CosmWasmClient.html#available-methods) belgelendiği şekilde:
```
async function moreExamples() {
const client = await CosmWasmClient.connect(rpcEndpoint);
const chainId = await client.getChainId()
const getHeight = await client.getHeight()
const getAccount = await client.getAccount("osmo1phaxpevm5wecex2jyaqty2a4v02qj7qmlmzk5a")
const getSequence = await client.getSequence("osmo1phaxpevm5wecex2jyaqty2a4v02qj7qmlmzk5a")
const getBlock = await client.getBlock(1)
const getBalance = await client.getBalance("osmo1phaxpevm5wecex2jyaqty2a4v02qj7qmlmzk5a","uosmo")
console.log(chainId);
console.log(client);
console.log(getHeight);
console.log(getAccount);
console.log(getSequence);
console.log(getBlock);
console.log(getBalance);
}
moreExamples();
```
## İşlemler
| Yöntem | Açıklama | Parametreler |
| -------- | -------- | -------- |
| .getTx() | | id: string |
| .searchTx() | | query: SearchTxQuery, filter: SearchTxFilter = {} |
| .txsQuery() | | query: string |
## Kodlar
| Yöntem | Açıklama | Parametreler |
| -------- | -------- | -------- |
| .getCodes() | | none |
| .getCodeDetails() | | codeId: number |
## Akıllı Kontratlar
| Yöntem | Açıklama | Parametreler |
| -------- | -------- | -------- |
| .getContracts() | | cideId: number |
| .getContract() | | address: string |
| .queryContractRaw() | | address: string, key: Uint8Array |
| .queryContractSmart() | | address: string, queryMsg: Record<string, unknown> |
# Akıllı Kontratları Sorgulama
:::warning
Akıllı kontratları localOsmosis'te sorgulamadan önce, [şu rehberi izleyerek deploy etmemiz](https://docs.osmosis.zone/developing/dapps/get_started/cosmwasm-localosmosis.html) gerekmektedir.
:::
Akıllı kontratı deploy ettikten sonra, aşağıdaki komutu çalıştırarak `<CONTRACT-ID>`'yi alabilirsiniz:
```
osmosisd query wasm list-code
```

Bu örnekte, 7 kontrat bulunmaktadır. Sonuncusu 7'dir.
Artık aşağıdaki komut ile kontrat adresini alabilirsiniz:
```
osmosisd query wasm list-contract-by-code <CONTRACT-ID>
```

Kontrat id 7 için kontrat adresimiz: `osmo1zlmaky7753d2fneyhduwz0rn3u9ns8rse3tudhze8rc2g54w9ysq725p3a`
## Kontratı Alma
```
import { CosmWasmClient } from "cosmwasm";
// This is your rpc endpoint
const rpcEndpoint = "http://localhost:26657/";
async function queryContract() {
const client = await CosmWasmClient.connect(rpcEndpoint);
const getContract = await client.getContract("osmo1zlmaky7753d2fneyhduwz0rn3u9ns8rse3tudhze8rc2g54w9ysq725p3a")
console.log(getContract);
}
queryContract();
```
Aşağıdaki kodu çalıştırın
```
node index.js
```
Çıktı şu şekilde olmalıdır:

## Kontrattan sayaç rakamını alma
Etkileşime geçtiğimiz kontrat, birkaç basit fonksiyona sahiptir. `get_count`, `increment` ve `reset`. Bu iki fonksiyon, `queryContractSmart` yöntemi ile çağrılabilir.
:::info
[Burada](cosmwasm-localosmosis.html), localOsmosis üzerinde örnek bir kontratın nasıl yükleneceğine dair ayrıntılı bir rehber bulunmaktadır.
:::
```
async function getCount() {
const client = await CosmWasmClient.connect(rpcEndpoint);
const getCount = await client.queryContractSmart("osmo1zlmaky7753d2fneyhduwz0rn3u9ns8rse3tudhze8rc2g54w9ysq725p3a",{ "get_count": {}})
console.log(getCount);
}
getCount();
```
## Sayacı artırma
```
async function increaseCounter() {
const client = await CosmWasmClient.connect(rpcEndpoint);
const increaseCounter = await client.queryContractRaw("osmo1zlmaky7753d2fneyhduwz0rn3u9ns8rse3tudhze8rc2g54w9ysq725p3a","{\"increment\":{}}")
console.log(increaseCounter);
}
queryContract();
```
Bu sayfadaki çalışma devam etmektedir. Güncellenecektir.
---
https://docs.osmosis.zone/developing/tools/localosmosis.html#what-is-localosmosis
#LocalOsmosis
## LocalOsmosis Nedir?
LocalOsmosis (Local Terra fork'u), Docker ile derlenmiş ve basit bir `docker-compose` ile organize edilmiş eksiksiz bir Osmosis testnet ve ekosistemidir. Akıllı kontrat geliştiricilerin, kontratlarını testnet veya mainnet'e deploy etmeden önce bir sandbox'ta test etmelerini kolaylaştırır.
LocalOsmosis, standart test ortamları için önceden düşünülmüş bazı varsayılan yapılandırmalara sahiptir. Diğer projeler, LocalOsmosis'te test yapılmasından bahsediyorsa, bu repo'da tanımlanan ayarlardan bahsediyorlardır.
LocalOsmosis açık testnet'e göre aşağıdaki avantajlara sahiptir:
* Kolayca modifiye edilebilir world state'ler
* Hızlı tekrarlar için çabukça sıfırlama olanağı
* Farklı senaryolar için basit simülasyonlar
* Kontrol edilebilir validatör davranışı
## Ön Gereksinimler
* [`Docker`](https://www.docker.com/)
* [`docker-compose`](https://github.com/docker/compose)
* [`Osmosisd`](https://get.osmosis.zone)
* Opsiyon 3'ü (localosmosis) seçin, yükleyici sizin için tüm yapılandırmaları gerçekleştirecektir.
* Local bilgisayarınızdaki osmosisd daemon, Docker container'ın içinde çalışan localosmosis daemon ile iletişim kurmak için kullanılır.
* Desteklendiği bilinen mimari: x86_64
* 16+ GB RAM önerilir
## LocalOsmosis Kurulumu
1. Aşağıdaki komutu çalıştırın:
```
git clone https://github.com/osmosis-labs/LocalOsmosis.git
cd LocalOsmosis
```
2. Docker daemon'un arka planda çalıştığından ve [`docker-compose`](https://github.com/docker/compose)'un yüklü olduğundan emin olun.
Linux üzerinde çalıştırıyorsanız, bu araçları aşağıdaki komutlar ile yükleyebilirsiniz:
* docker
```
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
sudo apt install docker.io -y
```
* docker-compose
```
sudo apt install docker-compose -y
```
## LocalOsmosis'i başlatma, durdurma ve sıfırlama
* LocalOsmosis'i başlatmak için:
```
make start
```
Şu anda ortamınızda aşağıdakiler bulunmaktadır:
* `tcp://localhost:26657` üzerinde çalışan [osmosisd](https://github.com/osmosis-labs/osmosis) RPC node'u
* `http://localhost:1317` üzerinde çalışan LCD
LocalOsmosis'i durdurmak (ve zincir bilgisini tutmak) için:
```
make stop
```
LocalOsmosis'i durdurmak (ve zincir bilgisini silmek) için:
```
make restart
```
## Entegrasyonlar
### osmosisd
1. Local bilgisayarınızda ve LocalOsmosis Docker container'da `osmosisd`'nin aynı versiyonu bulunduğundan emin olun. localosmosis versiyonunu, docker-compose.yml dosyasının image'ini kontrol ederek ve local makinanızdaki osmosid versiyonunu ise `osmosisd version` ile kontrol edebilirsiniz.
2. LocalOsmosis `osmosisd` node'u ile iletişime geçmek için lokal makinanızdaki `osmosisd`'yi kullanın:
```
osmosisd status
```
Bu komut, `osmosisd` varsayılan olarak `localhost:26657`'ye bağlı olduğundan dolayı otomatik olarak çalışır.
Aşağıdaki komut, yukarıdakinin daha açık şeklidir:
```
osmosisd status --node=tcp://localhost:26657
```
3. Aşağıdaki örnekte gösterildiği şekilde, osmosisd komutlarından herhangi birini LocalOsmosis ağınıza karşı çalıştırın:
```
osmosisd query account osmo1l0jjmvdtj4c3f8cxzzgfhq0zhdzf2x8cgpg056
```
## LocalOsmosis Yapılandırması
LocalOsmosis'in büyük çoğunluğu, `docker-compose.ym`l dosyası ile uygulandığından dolayı kolayca ihtiyaca özgü ayarlanabilir. LocalOsmosis'i, Docker container'lar ile kendi lokal Osmosis testnet'inizin kurulumunu yaparken başlangıç şablon noktası olarak kullanabilirsiniz.
Orijinal haliyle, LocalOsmosis aşağıdakiler gibi önceden tanımlanmış ayarlar ile gelir:
* RPC (26657) ve LCD (1317) için tanımlı portlar
* standart [hesaplar](https://docs.osmosis.zone/developing/tools/localosmosis.html#accounts)
### Node yapılandırmasının modifiye edilmesi
`config/config.toml` ve `config/app.toml` dosyaları içerisindeki validatörünüzün node yapılandırmasını modifiye edebilirsiniz.
#### İpucu: Blok Zamanını Hızlandırma
Blok zamanını düşürmek için, `config/config.toml` dısyasındaki `[consensus]` parametrelerini düzenleyin ve kendi değerlerinizi belirtin.
Aşağıdaki örnekte, zaman aşımları `200ms` olarak yapılandırılmıştır:
```
##### consensus configuration options #####
[consensus]
wal_file = "data/cs.wal/wal"
- timeout_propose = "3s"
- timeout_propose_delta = "500ms"
- timeout_prevote = "1s"
- timeout_prevote_delta = "500ms"
- timeout_precommit_delta = "500ms"
- timeout_commit = "5s"
+ timeout_propose = "200ms"
+ timeout_propose_delta = "200ms"
+ timeout_prevote = "200ms"
+ timeout_prevote_delta = "200ms"
+ timeout_precommit_delta = "200ms"
+ timeout_commit = "200ms"
```
Ek olarak, zaman aşımlarını yapılandırmak için aşağıdaki tek satırı kullanabilirsiniz:
```
sed -E -i '/timeout_(propose|prevote|precommit|commit)/s/[0-9]+m?s/200ms/' config/config.toml
```
### Genesis'in modifiye edilmesi
`config/genesis.json`'ı düzenleyerek, `genesis.json` dosyasını değiştirebilirsiniz. Değişikliklerinizi yüklemek için LocalOsmosis'i yeniden başlatın.
## Hesaplar
LocalOsmosis, bir validatör ile birlikte ION ve OSMO bakiyelerine sahip 10 hesap barındıran bir önyapılandırmaya sahiptir.
| Hesap | Adress | Mnemonic |
| --------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| validatör | `osmo1phaxpevm5wecex2jyaqty2a4v02qj7qmlmzk5a`<br/>`osmovaloper1phaxpevm5wecex2jyaqty2a4v02qj7qm9v24r6` | `satisfy adjust timber high purchase tuition stool faith fine install that you unaware feed domain license impose boss human eager hat rent enjoy dawn` |
| test1 | `osmo1cyyzpxplxdzkeea7kwsydadg87357qnahakaks` | `notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius` |
| test2 | `osmo18s5lynnmx37hq4wlrw9gdn68sg2uxp5rgk26vv` | `quality vacuum heart guard buzz spike sight swarm shove special gym robust assume sudden deposit grid alcohol choice devote leader tilt noodle tide penalty` |
| test3 | `osmo1qwexv7c6sm95lwhzn9027vyu2ccneaqad4w8ka` | `symbol force gallery make bulk round subway violin worry mixture penalty kingdom boring survey tool fringe patrol sausage hard admit remember broken alien absorb` |
| test4 | `osmo14hcxlnwlqtq75ttaxf674vk6mafspg8xwgnn53` | `bounce success option birth apple portion aunt rural episode solution hockey pencil lend session cause hedgehog slender journey system canvas decorate razor catch empty` |
| test5 | `osmo12rr534cer5c0vj53eq4y32lcwguyy7nndt0u2t` | `second render cat sing soup reward cluster island bench diet lumber grocery repeat balcony perfect diesel stumble piano distance caught occur example ozone loyal` |
| test6 | `osmo1nt33cjd5auzh36syym6azgc8tve0jlvklnq7jq` | `spatial forest elevator battle also spoon fun skirt flight initial nasty transfer glory palm drama gossip remove fan joke shove label dune debate quick` |
| test7 | `osmo10qfrpash5g2vk3hppvu45x0g860czur8ff5yx0` | `noble width taxi input there patrol clown public spell aunt wish punch moment will misery eight excess arena pen turtle minimum grain vague inmate` |
| test8 | `osmo1f4tvsdukfwh6s9swrc24gkuz23tp8pd3e9r5fa` | `cream sport mango believe inhale text fish rely elegant below earth april wall rug ritual blossom cherry detail length blind digital proof identify ride` |
| test9 | `osmo1myv43sqgnj5sm4zl98ftl45af9cfzk7nhjxjqh` | `index light average senior silent limit usual local involve delay update rack cause inmate wall render magnet common feature laundry exact casual resource hundred` |
| test10 | `osmo14gs9zqh8m49yy9kscjqu9h72exyf295afg6kgk` | `prefer forget visit mistake mixture feel eyebrow autumn shop pair address airport diesel street pass vague innocent poem method awful require hurry unhappy shoulder` |
---
https://docs.osmosis.zone/developing/tools/osmosisd.html
# Osmosisd
## Minimum Gereksinimler
Osmosisd çalıştırmak için önerilen minimum spesifikasyonlar aşağıdaki gibidir:
* 8-çekirdek (4 fiziksel çekirdek), x86_64 mimari işlemci
* 32 GB RAM (veya dengi swap dosya kurulumu)
* 1 TB depolama alanı
[Buradan](https://quicksync.io/networks/osmosis.html) osmosisd'yi çalıştırmak için yeterince depolama alanına sahip olup olmadığınızı kontrol edebilirsiniz
## Komutlar
Ayrıntılı bilgi için [komutlar](https://docs.osmosis.zone/developing/tools/commands) sayfasına gidiniz.
## Hızlı Başlangıç
https://get.osmosis.zone/ adresine gidin veya terminalinize aşağıdakini kopyalayıp yapıştırarak ekrandaki talimatları izleyin:
```
curl -sL https://get.osmosis.zone/install > i.py && python3 i.py
```

## Manuel Kurulum
### Sistemi Güncelleyin
Bu kılavuz, osmosisd binary'i sisteminize nasıl yükleyebileceğinizi açıklayacaktır.
Ubuntu'da sisteminizi güncelleyerek başlayın:
```
sudo apt update
```
```
sudo apt upgrade --yes
```
### Build Gereksinimlerini Kurun
Make ve gcc'yi kurun.
```
sudo apt install git build-essential ufw curl jq snapd --yes
```
Go'yu kurun:
```
wget -q -O - https://git.io/vQhTU | bash -s -- --version 1.17.2
```
Yükledikten sonra uygun bir şekilde yeni terminali açıp go'yu yükleyin.
### Osmosis Binary'i Kurun
Osmosis repo'yu klonlayıp v.7.0.3'ü kurun:
```
cd $HOME
git clone https://github.com/osmosis-labs/osmosis
cd osmosis
git checkout v7.0.3
make install
```
> **Not:**
> Buraya testnet node talimatlarından geldiyseniz [geri dönmek için buraya tıklayın](https://docs.osmosis.zone/developing/network/join-testnet).
> Mainnet node talimatlarından geldiyseniz [geri dönmek için buraya tıklayın.](https://docs.osmosis.zone/developing/network/join-mainnet)
## Komutlar
Bu bölüm, `osmosisd`'de bulunan komutları ve çalışan bir `osmosisd` işlemine bağlanan komut satırı arayüzünü açıklamaktadır.
### `add-genesis-account`
`genesis.json`'a bir genesis hesabı ekler.
**Sentaks**
```
osmosisd add-genesis-account <address-or-key-name> '<amount><coin-denominator>,<amount><coin-denominator>'
```
**Örnek**
```
osmosisd add-genesis-account acc1 '200000000uOsmo,550000ukrw'
```
### `collect-gentxs`
Genesis işlemlerini topplayarak `genesis.json`'a çıktı olarak verir.
**Sentaks**
```
osmosisd collect-gentxs
```
### `debug`
Uygulamada hata ayıklamaya ayrdımcı olur. Sentaks ve altkomutlardan oluşan liste için bkz [debug altkomutları](subcommands.md#debug-addr).
### `export`
State'i JSON olarak dışa aktarır.
**Sentaks**
```bash
osmosisd export
```
### `gentx`
`genesis.json`'a genesis işlemi ekler.
**Sentaks**
```bash
osmosisd gentx <key-name> <amount><coin-denominator>
```
**Örnek**
```bash
osmosisd gentx myKey 1000000uOsmo --home=/path/to/home/dir --keyring-backend=os --chain-id=test-chain-1 \
--moniker="myValidator" \
--commission-max-change-rate=0.01 \
--commission-max-rate=1.0 \
--commission-rate=0.07 \
--details="..." \
--security-contact="..." \
--website="..."
```
### `help`
Yardım bilgisini gösterir.
**Sentaks**
```bash
osmosisd help
```
### `init`
Bir validatör ve bir node için yapılandırma dosyalarını başlatır.
**Sentaks**
```bash
osmosisd init <moniker>
```
**Örnek**
```bash
osmosisd init myNode
```
### `keys`
Keyring komutlarını yönetir. Sentaks ve altkomutlardan oluşan liste için bkz [keys alt komutlar](subcommands.md#keys-add)
### `migrate`
Kaynak genesis'i hedef versiyona taşır ve STDOUT'a yazdırır.
**Sentaks**
```bash
osmosisd migrate <path-to-genesis-file>
```
**Örnek**
```bash
osmosisd migrate /genesis.json --chain-id=testnet --genesis-time=2020-04-19T17:00:00Z --initial-height=4000
```
### `query`
Sorguları yönetir. Sentaks ve altkomutlardan oluşan liste için bkz [query alt komutları](subcommands.md#query-account)
### `rosetta`
Bir Rosetta sunucusu oluşturur.
**Sentaks**
```bash
osmosisd rosetta
```
### `start`
İşlem içinde veya dışında, tam node uygulamayı Tendermint ile çalıştırır. Varsayılan olarak, uygulama işlem içerisinde Tendermint ile çalışır.
**Sentaks**
```bash
osmosisd start
```
### `status`
Uzak node'un durumunu gösterir.
**Sentaks**
```bash
osmosisd status
```
### `tendermint`
Tendermint protokolü yönetir. Alt komutlar için bkz []()
### `testnet`
Belirtilen sayıda dizin ile bir testnet oluşturur ve her bir dizine gerekli dosyaları yükler.
**Sentaks**
```bash
osmosisd testnet
```
**Örnek**
```bash
osmosisd testnet --v 6 --output-dir ./output --starting-ip-address 192.168.10.2
```
### `tx`
Hash, hesap sekansı veya imza ile bir işlemi getirir. Tüm sentaks ve alt komutlardan oluşan liste için bkz [tx alt komutları](subcommands.md#tx-authz-exec)
**Hash sorgusu için sentaks**
```bash
osmosisd query tx <hash>
```
**Hesap sekansı sorgusu için sentaks**
```bash
osmosisd query tx --type=acc_seq <address>:<sequence>
```
**İmza sorgusu için sentaks**
```bash
osmosisd query tx --type=signature <sig1_base64,sig2_base64...>
```
### `txs`
Sonuçları sayfalara ayıracak şekilde, belirtilen olaylara karşılık gelen işlemleri getirir.
**Sentaks**
```bash
osmosisd query txs --events '<event>' --page <page-number> --limit <number-of-results>
```
**Örnek**
```bash
osmosisd query txs --events 'message.sender=cosmos1...&message.action=withdraw_delegator_reward' --page 1 --limit 30
```
### `unsafe-reset-all`
Blok zincir veritabanını sıfırlar, adres defteri dosyalarını siler ve `data/priv_validator_state.json`'ı genesis durumuna sıfırlar.
**Sentaks**
```bash
osmosisd unsafe-reset-all
```
### `validate-genesis`
Varsayılan lokasyonda veya belirtilen lokasyonda genesis dosyasını doğrular.
**Sentaks**
```bash
osmosisd validate-genesis </path-to-file>
```
**Örnek**
```bash
osmosisd validate-genesis </genesis.json>
```
### `version`
Çalıştırdığınız Osmosis versiyonunu getirir.
**Sentaks**
```bash
osmosisd version
```
---
https://docs.osmosis.zone/developing/network/join-testnet.html
# Testnet'e Katılım
## Osmosis Binary'i Kurun
Aşağıdaki talimatları izlemeden önce [Osmosis Binary (CLI) kurulu](https://docs.osmosis.zone/developing/cli/install#manual-installation) olduğundan emin olun.
Her şeyin otomatik olarak gerçekleşmesini istiyorsanız [Osmosis installer](https://docs.osmosis.zone/developing/cli/install#quick-start)'ı da kullanabilirsiniz.
## Faucet
Testnet tokenlerini edinmek için [faucet](https://faucet.osmosis.zone/)'i kullanın.
## Osmosis Node'u Başlatın
Node'unuzu başlatmak için osmosisd'yi kullanın (`NODE NAME`'i dilediğiniz isimle değiştirin)
```
osmosisd init NODE_NAME --chain-id=osmo-test-4
```
Seed'leri ve persistent peers'i düzenlemek için config.toml'i açın.
```
cd $HOME/.osmosisd/config
nano config.toml
```
Page down veya ok tuşlarını kullanarak seeds ="" satırına gelerek aşağıdaki kodu yerleştirin.
```
seeds = "0f9a9c694c46bd28ad9ad6126e923993fc6c56b1@137.184.181.105:26656"
```
Daha sonra persistent peers'i ekleyin:
```
persistent_peers = "4ab030b7fd75ed895c48bcc899b99c17a396736b@137.184.190.127:26656,3dbffa30baab16cc8597df02945dcee0aa0a4581@143.198.139.33:26656"
```
Kaydetmek için `Ctrl+O`'ya bastıktan sonra çıkış için `Ctrl+X`'i kullanın.
## Cosmovisor'ı Kurun
Güncellemelerin kusursuz bir şekilde gerçekleşmesi için cosmovisor'ı kurun. Cosmovisor'ı kurmak için:
```
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0
```
Gerekli dizinleri oluşturun:
```
mkdir -p ~/.osmosisd/cosmovisor
mkdir -p ~/.osmosisd/cosmovisor/genesis
mkdir -p ~/.osmosisd/cosmovisor/genesis/bin
mkdir -p ~/.osmosisd/cosmovisor/upgrades
```
Ortam değişkenlerini (environment variables) ayarlayın:
```
echo "# Setup Cosmovisor" >> ~/.profile
echo "export DAEMON_NAME=osmosisd" >> ~/.profile
echo "export DAEMON_HOME=$HOME/.osmosisd" >> ~/.profile
echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=false" >> ~/.profile
echo "export DAEMON_LOG_BUFFER_SIZE=512" >> ~/.profile
echo "export DAEMON_RESTART_AFTER_UPGRADE=true" >> ~/.profile
echo "export UNSAFE_SKIP_BACKUP=true" >> ~/.profile
source ~/.profile
```
`UNSAFE_SKIP_BACKUP=true` satırını eklemeyebilirsiniz; ancak backup epey zaman almaktadır ve eski state'lerin snapshot'ları erişilebilirdir.
Genesis dosyasını indirip değiştirin:
```
cd $HOME/.osmosisd/config
wget wget https://github.com/osmosis-labs/networks/raw/main/osmo-test-4/genesis.tar.bz2
tar -xjf genesis.tar.bz2 && rm genesis.tar.bz2
```
Mevcut osmosisd binary'i cosmovisor/genesis klasörüne kopyalayın:
```
cp $GOPATH/bin/osmosisd ~/.osmosisd/cosmovisor/genesis/bin
```
Yaptıklarınızı kontrol etmek için cosmovisor ve osmosid versiyonlarının aynı olduğundan emin olun:
```
cosmovisor version
osmosisd version
```
Bu iki komut da 7.0.3 çıktısını vermelidir.
Private validator dosyasını genesis state'e sıfırlayın:
```
osmosisd unsafe-reset-all
```
## Zincir verisini indirin:
* Aşağıda dilediğiniz node türünü seçebilirsiniz (Pruned veya Archive)
Pruned:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmotestnet-4-pruned")|select (.mirror=="Netherlands")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
Archive:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmotestnet-4-archive")|select (.mirror=="Netherlands")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
## Osmosis Service Kurulumunu Yapın
Cosmovisor'ın arka planda çalışmasına ve herhangi bir sorunla karşılaşması halinde otomatik olarak yeniden başlamasına olanak sağlayacak servisin kurulumunu yapın:
```
echo "[Unit]
Description=Cosmovisor daemon
After=network-online.target
[Service]
Environment="DAEMON_NAME=osmosisd"
Environment="DAEMON_HOME=${HOME}/.osmosisd"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Environment="UNSAFE_SKIP_BACKUP=true"
User=$USER
ExecStart=${HOME}/go/bin/cosmovisor start
Restart=always
RestartSec=3
LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target
" >cosmovisor.service
```
Bu yeni dosyayı systemd dizinine taşıyın:
```
sudo mv cosmovisor.service /lib/systemd/system/cosmovisor.service
```
## Osmosis Service'i Başlatın
Servisi yeniden yükleyin ve başlatın:
```
sudo systemctl daemon-reload
systemctl restart systemd-journald
sudo systemctl start cosmovisor
```
Servisin durumunu kontrol edin:
```
sudo systemctl status cosmovisor
```
Servisin günlük kayıtlarını görmek için:
```
journalctl -u cosmovisor -f
```
## Cosmovisor'ı V7'ye Güncelleyin
Osmosisd'nin V6'dan V7'ye otomatik olarak yükseltilmesini istiyorsanız yükseltme eşiğinden (3214657) önce aşağıdaki adımları izleyin.
Bu adım, yalnızca genesis'ten senkronizasyon yapılırken 3215657 bloğunun henüz geçilmediği durumlarda gereklidir.
```
mkdir -p ~/.osmosisd/cosmovisor/upgrades/v7/bin
cd $HOME/osmosis
git pull
git checkout v7.0.3
make build
systemctl stop cosmovisor.service
cp build/osmosisd ~/.osmosisd/cosmovisor/upgrades/v7/bin
systemctl start cosmovisor.service
cd $HOME
```
---
https://docs.osmosis.zone/developing/network/join-mainnet.html
# Mainnet'e Katılım
## Osmosis Binary'i Kurun
Aşağıdaki talimatları izlemeden önce [Osmosis Binary (CLI) kurulu](https://docs.osmosis.zone/developing/cli/install#manual-installation) olduğundan emin olun.
Her şeyin otomatik olarak gerçekleşmesini istiyorsanız [Osmosis installer](https://docs.osmosis.zone/developing/cli/install#quick-start)'ı da kullanabilirsiniz.
## Osmosis Node'u Başlatın
Node'unuzu başlatmak için osmosisd'yi kullanın (NODE NAME'i dilediğiniz isimle değiştirin):
```
osmosisd init NODE_NAME
```
Genesis dosyasını indirip osmosis config dosyasına yerleştirin:
```
wget -O ~/.osmosisd/config/genesis.json https://github.com/osmosis-labs/networks/raw/main/osmosis-1/genesis.json
```
## Son versiyon (v10) yükseltme bilgileri
### Go Gerekliliği
Osmosis'in bu versiyonu için go1.18 kullanmanız gerekmektedir. Aşağıdaki komut aracılığıyla go1.18 kullanıp kullanmadığınızı kontrol edebilirsiniz.
```
go version
```
go1.18 kullanmıyorsanız yükseltme veya alçaltma yapmanız gerekmektedir. Linux üzerinde go 1.18'e yükseltme veya alçaltma yapmanın birçok yolundan birisi şu şekildedir:
```
wget -q -O - https://git.io/vQhTU | bash -s -- --remove
wget -q -O - https://git.io/vQhTU | bash -s -- --version 1.18
```
### Hafıza Gereklilikleri
Her zaman olduğu gibi, 64GB hafıza öneriyoruz.
### Cosmovisor'ı Kurun
Güncellemelerin kusursuz bir şekilde gerçekleşmesi için cosmovisor'ı kurun. Cosmovisor'ı kurmak için:
```
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0
```
Gerekli dizinleri oluşturun:
```
mkdir -p ~/.osmosisd/cosmovisor
mkdir -p ~/.osmosisd/cosmovisor/genesis
mkdir -p ~/.osmosisd/cosmovisor/genesis/bin
mkdir -p ~/.osmosisd/cosmovisor/upgrades
```
Ortam değişkenlerini (environment variables) ayarlayın:
```
echo "# Setup Cosmovisor" >> ~/.profile
echo "export DAEMON_NAME=osmosisd" >> ~/.profile
echo "export DAEMON_HOME=$HOME/.osmosisd" >> ~/.profile
echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=false" >> ~/.profile
echo "export DAEMON_LOG_BUFFER_SIZE=512" >> ~/.profile
echo "export DAEMON_RESTART_AFTER_UPGRADE=true" >> ~/.profile
echo "export UNSAFE_SKIP_BACKUP=true" >> ~/.profile
source ~/.profile
```
`UNSAFE_SKIP_BACKUP=true` satırını eklemeyebilirsiniz; ancak backup epey zaman almaktadır ve eski state'lerin snapshot'ları erişilebilirdir.
Genesis dosyasını indirip değiştirin:
```
cd $HOME/.osmosisd/config
wget wget https://github.com/osmosis-labs/networks/raw/main/osmo-test-4/genesis.tar.bz2
tar -xjf genesis.tar.bz2 && rm genesis.tar.bz2
```
Mevcut osmosisd binary'i cosmovisor/genesis klasörüne kopyalayın:
```
cp $GOPATH/bin/osmosisd ~/.osmosisd/cosmovisor/genesis/bin
```
Yaptıklarınızı kontrol etmek için cosmovisor ve osmosid versiyonlarının aynı olduğundan emin olun:
```
cosmovisor version
osmosisd version
```
### Zincir Verisini İndirin
Bir snapshot sağlayıcıdan en güncel zincir verisini indirin. Aşağıdaki komutlarda zincir verisini indirmek için https://quicksync.io/networks/osmosis.html bağlantısını kullanacağız. İhtiyaçlarınıza göre pruned veya archive seçebilirsiniz.
Sıkıştırılmış dosyayı kullanabilmek için liblz4-tool'u indirin.
```
sudo apt-get install wget liblz4-tool aria2 -y
```
Zincir verisini indirin:
* Aşağıda dilediğiniz node türünü seçebilirsiniz (Default, Pruned veya Archive)
* Size en yakın bölgeyi seçin (Hollanda, Singapur veya Sanfransico ve komutları kopyalayın)
Default Hollanda:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmosis-1-default")|select (.mirror=="Netherlands")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
Default Singapur:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmosis-1-default")|select (.mirror=="Singapore")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
Default San Fransico:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmosis-1-default")|select (.mirror=="SanFrancisco")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
Pruned Hollanda:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmosis-1-pruned")|select (.mirror=="Netherlands")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
Pruned Singapur:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmosis-1-pruned")|select (.mirror=="Singapore")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
Pruned San Francisco:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmosis-1-pruned")|select (.mirror=="SanFrancisco")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
Archive Hollanda:
```
URL=`curl https://quicksync.io/osmosis.json|jq -r '.[] |select(.file=="osmosis-1-archive")|select (.mirror=="Netherlands")|.url'`
cd $HOME/.osmosisd/
wget -O - $URL | lz4 -d | tar -xvf -
```
### Osmosis Service Kurulumunu Yapın
Cosmovisor'ın arka planda çalışmasına ve herhangi bir sorunla karşılaşması halinde otomatik olarak yeniden başlamasına olanak sağlayacak servisin kurulumunu yapın:
```
echo "[Unit]
Description=Cosmovisor daemon
After=network-online.target
[Service]
Environment="DAEMON_NAME=osmosisd"
Environment="DAEMON_HOME=${HOME}/.osmosisd"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Environment="UNSAFE_SKIP_BACKUP=true"
User=$USER
ExecStart=${HOME}/go/bin/cosmovisor start
Restart=always
RestartSec=3
LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target
" >cosmovisor.service
```
Bu yeni dosyayı systemd dizinine taşıyın:
```
sudo mv cosmovisor.service /lib/systemd/system/cosmovisor.service
```
Osmosis Service'i Başlatın
Servisi yeniden yükleyin ve başlatın:
```
sudo systemctl daemon-reload
systemctl restart systemd-journald
sudo systemctl start cosmovisor
```
Servisin durumunu kontrol edin:
```
sudo systemctl status cosmovisor
```
Servisin günlük kayıtlarını görmek için:
```
journalctl -u cosmovisor -f
```
## Cosmovisor'ı V10'a Güncelleyin
Osmosisd'nin V9'dan V10'a otomatik olarak yükseltilmesini istiyorsanız yükseltme eşiğinden (4713065) önce aşağıdaki adımları izleyin:
```
mkdir -p ~/.osmosisd/cosmovisor/upgrades/v9/bin
cd $HOME/osmosis
git pull
git checkout v10.0.0
make build
cp build/osmosisd ~/.osmosisd/cosmovisor/upgrades/v9/bin
```
---
https://docs.osmosis.zone/developing/network/public-endpoints.html
# Açık Endpoint'ler
Osmosis aşağıdaki RPC protokollerini desteklemektedir:
* URI over HTTP
* JSON-RPC 2.0 over HTTP
* JSON-RPC 2.0 over websockets (ilerleyen zamanlarda desteklenmeyebilir).
İsteyen herkes, Osmosis blok zinciriyle iletişim kuabilmek için endpoint'ler ile kendi node'unu kurabilir; kullanım rahatlığı açısından zinciri sorgulamak için herkese açık endpoint'ler de bulunmaktadır. Bunlar, geliştirme ve test maksadıyla önerilir. Maksimum kontrol ve güvenilirlik için, kendi node'unuzu çalıştırmanızı öneririz.
## Resmi Endpoint'ler
| Network| Chain ID | GRPC endpoint | RPC endpoint | LCD endpoint | REST Docs | Faucet
| -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| Testnet | osmo-test-4| grpc-test.osmosis.zone | rpc-test.osmosis.zone | lcd-test.osmosis.zone | [Swagger](https://lcd-test.osmosis.zone/swagger/) | [faucet.osmosis.zone](https://faucet.osmosis.zone/) |
| Mainnet | osmosis-1 | grpc.osmosis.zone | rpc.osmosis.zone | lcd.osmosis.zone | [Swagger](https://lcd.osmosis.zone/swagger/) | yok |
### URI over HTTP Örneği
```
curl https://rpc.osmosis.zone/abci_info?
```
veya, tarayıcınızda şu url'i açabilirsiniz:
https://rpc.osmosis.zone/abci_info?
### JSON-RPC 2.0 over HTTP Örneği
```
curl --header "Content-Type: application/json" --request POST --data '{"method": "block", "params": ["4261881"], "id": 1}' https://rpc.osmosis.zone:443
```
## Chain Registry
Bu repo'da cosmos-sdk temelli zincirler için bir chain.json ve assetlist.json bulunmaktadır. chain.json içerisindeki veriler node kurmak ve node'lar ile etkileşime geçmeyi kolaylaştırmaktadır.
* [Chain Registry](https://github.com/cosmos/chain-registry) : `https://github.com/cosmos/chain-registry`
## Diğer Sağlayıcılar
* [DataHub](https://datahub.figment.io) : `https://datahub.figment.io`
---
https://docs.osmosis.zone/developing/osmosis-core/#get-started
# Zincirde Geliştirme
Bu sayfadaki rehberler, Osmosis üzerinde geliştirme sürecini açıklayacaktır.
## Başlarken
**Osmosis Kaynak Kodunu Oluşturma ve Test Etme**
Osmosis kod tabanını oluşturma ve test etmeye başlangıç
**IDE Kurulumu**
Go'da Osmosis üzerinde geliştirme için önerilen IDE setup'ı
**Osmosis Daemon**
Ağa katılmak için osmosid yükleme
**Modüller**
Osmosis modülleri ve ilgili CLI komutları
**Relay**
Osmosis ve diğer zincirler arasında IBC paketleri aktarma
**Varlıklar**
Karşılık gelen kanalları ve IBC denomları ile Osmosis'te desteklenen varlıklar
**Anahtar Yönetimi**
CLI yoluyla ve çoklu imzalı cüzdanlar gibi ileri düzey operasyonlarla anahtar yönetimi
**İşlem Yapısı**
Osmosis blok zincirinde işlem yapısını anlama
**Katkıda Bulunma**
Osmosis temel gelişimine katkıda bulunma rehberi
## Ağlar
**Local Osmosis**
Osmosis geliştirme ortamı
**Edgenet'e Katılma**
Osmosis edgenet üzerinde node kurulumu
**Testnet'e Katılma**
Osmosis testnet üzerinde node kurulumu
**Mainnet'e Katılma**
Osmosis mainnet üzerinde node kurulumu
# Web Geliştirme
Bu sayfadaki kılavuzlar, Osmosis front-end arayüzünde geliştirme sürecini açıklayacaktır.
**Web Geliştirici Rehberi**
Geliştirme ortamında Osmosis front-end'i çalıştırma
---
https://docs.osmosis.zone/developing/osmosis-core/build.html
# Osmosis Kaynak Kodunu Oluşturma ve Test Etme
## Go 1.18'i Yükleyin
Şu anda, Osmosis kodu compile etmek için Go 1.18'i kullanmaktadır.
Talimatları izleyerek [Go 1.18](https://go.dev/doc/install)'i yükleyin.
Terminalinize `go version` yazarak kurulumu doğrulayın.
```
$ go version
go version go1.18.1 darwin/amd64
```
## Osmosis'i Oluşturma
Flink oluşturmak için kaynak koda ihtiyaç duyacaksınız. [Bir sürümün kaynağını indirebilir](https://github.com/osmosis-labs/osmosis/releases) veya [git repository'i clone'layabilirsiniz](https://github.com/osmosis-labs/osmosis).
Kaynak kodundan Osmosis'i oluşturun.
```
cd osmosis
make build
```
Oluşturduktan sonra `osmosis/build/osmosisd` içerisinde yürütülebilir yeni bir dosya göreceksiniz.
## Testler
Kaynak kodundan testleri yapın:
```
cd osmosis
make test
```
---
https://docs.osmosis.zone/developing/osmosis-core/ide-guide.html
# Osmosis IDE Kurulumu
Go'da Osmosis üzerinde geliştirme için önerilen IDE kurulumu.
## Go'yu ve VSCode'u Yükleyin
Önce VSCode'u yükleyin: https://code.visualstudio.com/download
Ardından, Go'yu yükleyin: https://go.dev/doc/install
## Osmosis ve Cosmos SDK'i Klonlayın
Lokal ortamı Osmosis'e uygun ayarlamak için Osmosis repo'yu klonlayın:
```
git clone https://github.com/osmosis-labs/osmosis.git
```
Bir sonraki adım zorunlu değildir; ancak referans olarak oldukça faydalıdır. Cosmos SDK repo'yu klonlamak için:
```
git clone https://github.com/cosmos/cosmos-sdk.git
```
Artık VSCode'u başlatarak `File -> Open` yoluyla Osmosis klasörünü açabilirsiniz.
Son olarak, `File -> Add Folder to Workspace` aracılığıyla seçerek Cosmos SDK'i çalışma alanınıza ekleyin.
Aynı VSCode sayfasında hem Osmosis hem de Cosmos SDK görünecektir!
## İlgili VSCode Uzantılarını Ekleyin
VSCode'unuza aşağıdaki uzantıları ekleyin:
1. [Go by Google](https://marketplace.visualstudio.com/items?itemName=golang.Go)
2. [VSCode Proto 3 by zxh404](https://marketplace.visualstudio.com/items?itemName=zxh404.vscode-proto3)
3. [Git Lens by GitKraken](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
4. [Tabnine AI by Tabnine](https://marketplace.visualstudio.com/items?itemName=TabNine.tabnine-vscode)
## Vscode Yapılandırması
Değişikliklerinizi her kaydettiğinizde ortamınızın test yapması için
`VSCode -> Preferences -> settings -> Extensions -> Go`'a gidin.
* `Go: Lint tool`'u `golint` olarak ayarlayın. Dilerseniz `staticcheck`'i de kullanabilirsiniz; ama çok fazla işlem kaynağı harcar.
* Osmosis kodundaki aynı yapılandırmayı kullanmak isterseniz `golangci-lint` kullanın.
* Muhtemelen seçtiğiniz linter'in kurulumuna dair bir ekranla karşılacaksınız, install butonuna tıklayın.
* `Go: Format tool`'u `goreturns` veya `gofumports` olarak ayarlayın.
* Muhtemelen seçtiğiniz formatlayıcının kurulumuna dair bir ekranla karşılaşacaksınız, install butonuna tıklayın.
* `Go: Test on Save`'i kontrol edin.
## Lisans
Bu çalışma Apache 2.0 ve MIT kapsamında çift lisanslıdır. Bu çalışmayı kullandığınızda ikisinden birini seçebilirsiniz.
`SPDX-License-Identifier: Apache-2.0 OR MIT`