+```
+
+Kullanıcı arayüzünü tüm bilgilerle doldurmak istemiyoruz, bu nedenle bunları görüntülemeyi veya kapatmayı mümkün kılmak için bir [`ayrıntılar`](https://www.w3schools.com/tags/tag_details.asp) etiketi kullanıyoruz.
+
+```tsx
+ {attrs.name}
+
+ {JSON.stringify(attrs.object, null, 2)}
+```
+
+Alanların çoğu [`JSON.stringify`](https://www.w3schools.com/js/js_json_stringify.asp) kullanılarak görüntülenir.
+
+```tsx
+
+ { funs.length > 0 &&
+ <>
+ Functions:
+
+```
+
+İstisna, [JSON standardının](https://www.json.org/json-en.html) bir parçası olmayan işlevlerdir, bu nedenle ayrı olarak görüntülenmeleri gerekir.
+
+```tsx
+ {funs.map((f, i) =>
+```
+
+JSX içinde, `{` küme parantezleri `}` içindeki kod, JavaScript olarak yorumlanır. Daha sonra, `(` normal parantezler `)` içindeki kod, tekrar JSX olarak yorumlanır.
+
+```tsx
+ (- {f}
)
+ )}
+```
+
+React, [DOM Ağacındaki](https://www.w3schools.com/js/js_htmldom.asp) etiketlerin ayrı tanımlayıcılara sahip olmasını gerektirir. Bu, aynı etiketin alt öğelerinin (bu durumda, [sırasız liste](https://www.w3schools.com/tags/tag_ul.asp)) farklı `anahtar` özniteliklerine ihtiyaç duyduğu anlamına gelir.
+
+```tsx
+
+ >
+ }
+
+ >
+}
+```
+
+Çeşitli HTML etiketlerini sonlandırın.
+
+##### Son `export` {#the-final-export}
+
+```tsx
+export { Greeter }
+```
+
+`Greeter` bileşeni, uygulama için dışa aktarmamız gereken bileşendir.
+
+#### `src/wagmi.ts` {#wagmi-ts}
+
+Son olarak, WAGMI ile ilgili çeşitli tanımlar `src/wagmi.ts` içindedir. Burada her şeyi açıklamayacağım, çünkü çoğu değiştirmeniz gerekmeyecek basmakalıp bir koddur.
+
+Buradaki kod, [github'daki](https://github.com/qbzzt/20230801-modern-ui/blob/main/src/wagmi.ts) kodla tam olarak aynı değil, çünkü makalenin ilerleyen bölümlerinde başka bir zincir ekliyoruz ([Redstone Holesky](https://redstone.xyz/docs/network-info)).
+
+```ts
+import { getDefaultWallets } from '@rainbow-me/rainbowkit'
+import { configureChains, createConfig } from 'wagmi'
+import { holesky, sepolia } from 'wagmi/chains'
+```
+
+Uygulamanın desteklediği blokzincirleri içe aktarın. Desteklenen zincirlerin listesini [viem github'da](https://github.com/wagmi-dev/viem/tree/main/src/chains/definitions) görebilirsiniz.
+
+```ts
+import { publicProvider } from 'wagmi/providers/public'
+
+const walletConnectProjectId = 'c96e690bb92b6311e8e9b2a6a22df575'
+```
+
+[WalletConnect](https://walletconnect.com/) kullanabilmek için uygulamanız için bir proje kimliğine ihtiyacınız var. [cloud.walletconnect.com](https://cloud.walletconnect.com/sign-in) adresinden alabilirsiniz.
+
+```ts
+const { chains, publicClient, webSocketPublicClient } = configureChains(
+ [ holesky, sepolia ],
+ [
+ publicProvider(),
+ ],
+)
+
+const { connectors } = getDefaultWallets({
+ appName: 'My wagmi + RainbowKit App',
+ chains,
+ projectId: walletConnectProjectId,
+})
+
+export const config = createConfig({
+ autoConnect: true,
+ connectors,
+ publicClient,
+ webSocketPublicClient,
+})
+
+export { chains }
+```
+
+### Başka bir blokzincir ekleme {#add-blockchain}
+
+Bu günlerde çok sayıda [L2 ölçeklendirme çözümü](/layer-2/) var ve viem'in henüz desteklemediği bazılarını desteklemek isteyebilirsiniz. Bunu yapmak için `src/wagmi.ts` dosyasını değiştirin. Bu talimatlar, [Redstone Holesky](https://redstone.xyz/docs/network-info) nasıl ekleneceğini açıklar.
+
+1. Viem'den `defineChain` türünü içe aktarın.
+
+ ```ts
+ import { defineChain } from 'viem'
+ ```
+
+2. Ağ tanımını ekleyin.
+
+ ```ts
+ const redstoneHolesky = defineChain({
+ id: 17_001,
+ name: 'Redstone Holesky',
+ network: 'redstone-holesky',
+ nativeCurrency: {
+ decimals: 18,
+ name: 'Ether',
+ symbol: 'ETH',
+ },
+ rpcUrls: {
+ default: {
+ http: ['https://rpc.holesky.redstone.xyz'],
+ webSocket: ['wss://rpc.holesky.redstone.xyz/ws'],
+ },
+ public: {
+ http: ['https://rpc.holesky.redstone.xyz'],
+ webSocket: ['wss://rpc.holesky.redstone.xyz/ws'],
+ },
+ },
+ blockExplorers: {
+ default: { name: 'Explorer', url: 'https://explorer.holesky.redstone.xyz' },
+ },
+ })
+ ```
+
+3. Yeni zinciri `configureChains` çağrısına ekleyin.
+
+ ```ts
+ const { chains, publicClient, webSocketPublicClient } = configureChains(
+ [ holesky, sepolia, redstoneHolesky ],
+ [ publicProvider(), ],
+ )
+ ```
+
+4. Uygulamanın yeni ağdaki sözleşmelerinizin adresini bildiğinden emin olun. Bu durumda, `src/components/Greeter.tsx` dosyasını değiştiriyoruz:
+
+ ```ts
+ const contractAddrs : AddressPerBlockchainType = {
+ // Holesky
+ 17000: '0x432d810484AdD7454ddb3b5311f0Ac2E95CeceA8',
+
+ // Redstone Holesky
+ 17001: '0x4919517f82a1B89a32392E1BF72ec827ba9986D3',
+
+ // Sepolia
+ 11155111: '0x7143d5c190F048C8d19fe325b748b081903E3BF0'
+ }
+ ```
+
+## Sonuç {#conclusion}
+
+Elbette, `Greeter` için bir kullanıcı arayüzü sağlamakla gerçekten ilgilenmiyorsunuz. Kendi sözleşmeleriniz için bir kullanıcı arayüzü oluşturmak istiyorsunuz. Kendi uygulamanızı oluşturmak için şu adımları uygulayın:
+
+1. Bir wagmi uygulaması oluşturmayı belirtin.
+
+ ```sh copy
+ pnpm create wagmi
+ ```
+
+2. Uygulamayı adlandırın.
+
+3. **React** çerçevesini seçin.
+
+4. **Vite** varyantını seçin.
+
+5. [Rainbow kit ekleyebilirsiniz](https://www.rainbowkit.com/docs/installation#manual-setup).
+
+Şimdi gidin ve sözleşmelerinizi tüm dünyada kullanılabilir hale getirin.
+
+[Çalışmalarımdan daha fazlası için buraya bakın](https://cryptodocguy.pro/).
+
diff --git a/public/content/translations/tr/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/tr/developers/tutorials/deploying-your-first-smart-contract/index.md
index e7a8ce5772c..03fb326af17 100644
--- a/public/content/translations/tr/developers/tutorials/deploying-your-first-smart-contract/index.md
+++ b/public/content/translations/tr/developers/tutorials/deploying-your-first-smart-contract/index.md
@@ -1,12 +1,8 @@
---
-title: İlk akıllı sözleşmenizi dağıtın
-description: Ethereum test ağında ilk akıllı sözleşmenizi dağıtmaya giriş
+title: "İlk akıllı sözleşmeni dağıtma"
+description: "Bir Ethereum test ağında ilk akıllı sözleşmeni dağıtmaya giriş"
author: "jdourlens"
-tags:
- - "akıllı sözleşmeler"
- - "karışım"
- - "katılık"
- - "dağıtma"
+tags: [ "akıllı kontratlar", "remix", "katılık", "dağıtma" ]
skill: beginner
lang: tr
published: 2020-04-03
@@ -15,17 +11,17 @@ sourceUrl: https://ethereumdev.io/deploying-your-first-smart-contract/
address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE"
---
-Ethereum blok zincirinde ilk [akıllı sözleşmenizi](/developers/docs/smart-contracts/) [dağıtmak](/developers/docs/smart-contracts/deploying/) ve onunla etkileşimde bulunmak için eminiz ki siz de en az bizim kadar heyecanlısınızdır.
+Sanırım sen de Ethereum blokzincirinde ilk [akıllı sözleşmeni](/developers/docs/smart-contracts/) [dağıtmaya](/developers/docs/smart-contracts/deploying/) ve onunla etkileşime geçmeye bizim kadar heveslisin.
-Endişelenmeyin; bu sözleşmeyi [yerel test ağında](/developers/docs/networks/) yayınlayacağımız için size herhangi bir bedele mal olmayacak. Üzerinde dilediğiniz şekilde oynayabilirsiniz.
+Endişelenme, bu ilk akıllı sözleşmemiz olduğu için onu [yerel bir test ağında](/developers/docs/networks/) dağıtacağız, böylece dağıtmak ve onunla dilediğince oynamak sana hiçbir maliyeti olmayacak.
-## Sözleşmemizi yazmaya başlayalım {#writing-our-contract}
+## Sözleşmemizi yazma {#writing-our-contract}
-İlk adım olarak [Remix'e](https://remix.ethereum.org/) gidin ve yeni bir dosya oluşturun. Remix arayüzünün sol üst köşesinde yer alan yeni dosya simgesini kullanarak yeni bir dosya oluşturun ve dosyanıza isim verin.
+İlk adım olarak [Remix'i ziyaret edip](https://remix.ethereum.org/) yeni bir dosya oluştur. Remix arayüzünün sol üst kısmından yeni bir dosya ekle ve istediğin dosya adını gir.
-
+
-Bu yeni dosyaya aşağıdaki kodu yapıştırıyoruz.
+Yeni dosyaya aşağıdaki kodu yapıştıracağız.
```solidity
// SPDX-License-Identifier: MIT
@@ -33,15 +29,15 @@ pragma solidity >=0.5.17;
contract Counter {
- // Public variable of type unsigned int to keep the number of counts
+ // Sayım sayısını tutmak için işaretsiz tamsayı türünde herkese açık değişken
uint256 public count = 0;
- // Function that increments our counter
+ // Sayacımızı artıran fonksiyon
function increment() public {
count += 1;
}
- // Not necessary getter to get the count value
+ // Sayım değerini almak için gerekli olmayan alıcı
function getCount() public view returns (uint256) {
return count;
}
@@ -49,51 +45,51 @@ contract Counter {
}
```
-Programlama konusunda bilgisi olanlar, bu programın ne yaptığını tahmin edeceklerdir. Satır satır açıklayacak olursak:
+Programlamaya aşinaysan bu programın ne yaptığını kolayca tahmin edebilirsin. Satır satır açıklaması şöyledir:
-- Satır 4: `Counter` adında yeni bir sözleşme tanımlıyoruz.
-- Satır 7: Sözleşmemiz, ilk değeri 0 olan `count` adında bir işaretsiz tam sayı depoluyor.
-- Satır 10: İlk fonksiyon, sözleşmenin durumunu değiştirir ve değişken `count` değerine `increment()` uygular.
-- Satır 15: İkinci fonksiyon, basitçe `count` değerini akıllı sözleşmenin dışından okumamızı sağlayan bir alıcıdır. Aslında `count` değişkenini zaten herkesin erişime açık (public) tanımladığımız için bunu yapmamıza gerek yoktu ama sadece örnek olarak göstermek istedik.
+- 4. Satır: `Counter` adıyla bir sözleşme tanımlıyoruz.
+- 7. Satır: Sözleşmemiz, 0'dan başlayan `count` adında işaretsiz bir tamsayı depolar.
+- 10. Satır: İlk fonksiyon, sözleşmenin durumunu değiştirir ve `count` değişkenimizi artırır.
+- 15. Satır: İkinci fonksiyon, akıllı sözleşmenin dışından `count` değişkeninin değerini okuyabilmek için kullanılan bir alıcıdır. `count` değişkenimizi herkese açık (public) olarak tanımladığımız için bunun gerekli olmadığını, yalnızca örnek olarak gösterildiğini unutma.
-İlk akıllı sözleşmemiz için hepsi bu kadar. Bildiğiniz gibi, Java veya C++ gibi OOP (Nesne Odaklı Programlama) dillerinden bir sınıfa benziyor. Şimdi sözleşmemizle oynamaya başlayalım.
+İlk basit akıllı sözleşmemiz için hepsi bu kadar. Bilebileceğin üzere, bu Java veya C++ gibi OOP (Nesne Yönelimli Programlama) dillerindeki bir sınıfa benziyor. Şimdi sözleşmemizle oynama zamanı.
## Sözleşmemizi dağıtma {#deploying-our-contract}
-Sözleşmemizle etkileşimde bulunabilmek için öncelikle onu blok zincirinde dağıtacağız.
+İlk akıllı sözleşmemizi yazdığımıza göre, şimdi onunla oynayabilmek için blokzincirine dağıtacağız.
-Bir [sözleşmeyi blok zincirinde dağıtmak](/developers/docs/smart-contracts/deploying/), aslında sadece sözleşme kodunun derlenmiş halini, herhangi bir alıcı belirtmeden, işlem olarak ağa göndermekten ibarettir.
+[Akıllı sözleşmeyi blokzincirinde dağıtmak](/developers/docs/smart-contracts/deploying/), aslında derlenmiş akıllı sözleşmenin kodunu içeren bir işlemi herhangi bir alıcı belirtmeden göndermekten ibarettir.
-Öncelikle sol tarafta yer alan derle simgesini kullanarak [sözleşmemizi derleyeceğiz](/developers/docs/smart-contracts/compiling/):
+Önce, sol taraftaki derleme simgesine tıklayarak [sözleşmeyi derleyeceğiz](/developers/docs/smart-contracts/compiling/):

-Ardından Compile butonuna tıklayın:
+Ardından derle düğmesine tıkla:
-
+
-Dilerseniz "Auto compile" seçeneğini seçebilirsiniz. Böylece sözleşmenizi güncellediğiniz zaman sözleşmeinz otomatik olarak derlenir.
+İçeriği metin düzenleyiciye kaydettiğinde sözleşmenin her zaman derlenmesi için “Otomatik derle” seçeneğini tercih edebilirsin.
-Ardından "deploy and run transactions" ekranına gidin:
+Ardından "Dağıt ve işlemleri çalıştır" ekranına git:
-
+
-Bu ekranda öncelikle sözleşmeye verdiğimiz ismin göründüğünden emin olmalısınız. Sözleşme adını görüyorsanız Deploy butonuna tıklayın. Sayfanın üst kısmında görebileceğiniz gibi, mevcut ortam “Javascript VM”, yani bu daha hızlı ve herhangi bir ücret ödemeden test edebilmek için akıllı sözleşmemizi yerel bir test blok zincirinde dağıtıp etkileşime geçeceğimiz anlamına geliyor.
+"Dağıt ve işlemleri çalıştır" ekranına geldiğinde, sözleşme adının göründüğünü kontrol et ve Dağıt'a tıkla. Sayfanın üst kısmında görebileceğin gibi, mevcut ortam “JavaScript VM”dir. Bu, daha hızlı ve hiçbir ücret ödemeden test edebilmek için akıllı sözleşmemizi yerel bir test blokzincirinde dağıtacağımız ve etkileşime gireceğimiz anlamına gelir.
-
+
-"Deploy" düğmesine tıkladıktan sonra akıllı sözleşmemiz alt kısımda görünecek. Sol başındaki ok simgesini kullanarak sözleşmemizin içeriğini görüntüleyebiliriz. Bu, değişken `counter`'ımız (sayaç), `increment()` (artış) fonksiyonumuz ve alıcımız `getCounter()`'dır.
+“Dağıt” düğmesine tıkladıktan sonra sözleşmenin en altta belirdiğini göreceksin. Sözleşmemizin içeriğini görmek için solundaki oka tıklayarak genişlet. Bu bizim `counter` değişkenimiz, `increment()` fonksiyonumuz ve `getCounter()` alıcımızdır.
-Burada `count` veya `getCount` düğmelerine tıklarsanız, sözleşmede tanımlamış olduğumuz `count` değişkeninin içeriğini alıp görüntüleyebilirsiniz. Şu ana dek `increment` fonksiyonunu hiç çağırmadığımız için göreceğimiz değer 0 olmalı.
+`count` veya `getCount` düğmesine tıklarsan sözleşmenin `count` değişkeninin içeriğini alır ve görüntüler. Henüz `increment` fonksiyonunu çağırmadığımız için 0 göstermesi gerekir.
-
+
-Şimdi de düğmeye tıklayarak `increment` fonksiyonunu çağıralım. Ekranın alt kısmında gerçekleşmekte olan işleme ait işlem dökümlerini göreceksiniz. `increment` düğmesi yerine verileri alma düğmesine tıkladığınızda kayıtların farklı olduğunu göreceksiniz. Bunun sebebi, blok zincirindeki herhangi bir veriyi okumanın masrafsız ve işlem gerektirmeyen (kaydetmek anlamında) olmasıdır. Sadece blok zincirinin durumunu güncelleyen eylemler işlem olarak nitelendirilir:
+Şimdi düğmeye tıklayarak `increment` fonksiyonunu çağıralım. Pencerenin en altında, yapılan işlemlerin kayıtlarının belirdiğini göreceksin. `increment` düğmesi yerine veriyi almak için olan düğmeye bastığında kayıtların farklı olduğunu göreceksin. Bunun nedeni, blokzincirinden veri okumanın herhangi bir işlem (yazma) veya ücret gerektirmemesidir. Çünkü sadece blokzincirinin durumunu değiştirmek bir işlem yapmayı gerektirir:
-
+
-`increment()` fonksiyonumuzu çağırmak için bir işlem oluşturan increment düğmesine bastıktan sonra tekrar count veya getCount düğmelerine basarsak akıllı sözleşmemizin yeni güncellenmiş durumunu count değişkeninin 0'dan büyük olduğu hâliyle görebiliriz.
+`increment()` fonksiyonumuzu çağırmak için bir işlem oluşturan increment düğmesine bastıktan sonra `count` veya `getCount` düğmelerine tekrar tıkladığımızda, akıllı sözleşmemizin yeni güncellenmiş durumunu `count` değişkeni 0'dan büyük olacak şekilde okuyacağız.

-Sonraki öğreticimizde [akıllı sözleşmelere nasıl olay ekleyebileceğimizden](/developers/tutorials/logging-events-smart-contracts/) bahsedeceğiz. Olayları kayıt altına alarak akıllı sözleşmemizin hata ayıklamasını yapabilir ve fonksiyonları çağırdığımızda neler olduğunu ayrıntılı bir şekilde görebiliriz.
+Bir sonraki öğreticide, [akıllı sözleşmelerinize nasıl olay ekleyebileceğinizi](/developers/tutorials/logging-events-smart-contracts/) ele alacağız. Olayları kaydetmek, akıllı sözleşmendeki hataları ayıklamak ve bir fonksiyonu çağırırken neler olduğunu anlamak için uygun bir yoldur.
diff --git a/public/content/translations/tr/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md b/public/content/translations/tr/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md
new file mode 100644
index 00000000000..56597b2b53d
--- /dev/null
+++ b/public/content/translations/tr/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md
@@ -0,0 +1,372 @@
+---
+title: "Yerel, çok istemcili bir test ağında bir merkeziyetsiz uygulama nasıl geliştirilir ve test edilir"
+description: "Bu kılavuz, test ağını bir merkeziyetsiz uygulamayı dağıtmak ve test etmek için kullanmadan önce, size çok istemcili bir yerel Ethereum test ağını nasıl somutlaştıracağınız ve yapılandıracağınız konusunda yol gösterecektir."
+author: "Tedi Mitiku"
+tags:
+ [
+ "istemciler",
+ "düğümler",
+ "akıllı kontratlar",
+ "birleştirilebilirlik",
+ "mutabakat katmanı",
+ "yürütme katmanı",
+ "test etmek"
+ ]
+skill: intermediate
+lang: tr
+published: 2023-04-11
+---
+
+## Giriş {#introduction}
+
+Bu kılavuz, yapılandırılabilir bir yerel Ethereum test ağını somutlaştırma, ona bir akıllı sözleşme dağıtma ve merkeziyetsiz uygulamanıza karşı testler yürütmek için test ağını kullanma sürecinde size yol gösterir. Bu kılavuz, canlı bir test ağına veya ana ağa dağıtım yapmadan önce merkeziyetsiz uygulamalarını farklı ağ yapılandırmalarına karşı yerel olarak geliştirmek ve test etmek isteyen merkeziyetsiz uygulama geliştiricileri için tasarlanmıştır.
+
+Bu kılavuzda şunları yapacaksınız:
+
+- [Kurtosis](https://www.kurtosis.com/) kullanarak [`eth-network-package`](https://github.com/kurtosis-tech/eth-network-package) ile yerel bir Ethereum test ağı oluşturun,
+- Bir merkeziyetsiz uygulamayı derlemek, dağıtmak ve test etmek için Hardhat merkeziyetsiz uygulama geliştirme ortamınızı yerel test ağına bağlayın ve
+- Çeşitli ağ yapılandırmalarına karşı geliştirme ve test iş akışlarını etkinleştirmek için düğüm sayısı ve belirli YK/MK istemci eşleşmeleri gibi parametreler de dahil olmak üzere yerel test ağını yapılandırın.
+
+### Kurtosis nedir? {#what-is-kurtosis}
+
+[Kurtosis](https://www.kurtosis.com/), çok kapsayıcılı test ortamlarını yapılandırmak için tasarlanmış birleştirilebilir bir yapı sistemidir. Geliştiricilerin, blokzincir test ağları gibi dinamik kurulum mantığı gerektiren yeniden üretilebilir ortamlar oluşturmasını özellikle sağlar.
+
+Bu kılavuzda, Kurtosis eth-network-package, [`geth`](https://geth.ethereum.org/) Yürütme Katmanı (YK) istemcisinin yanı sıra [`teku`](https://consensys.io/teku), [`lighthouse`](https://lighthouse.sigmaprime.io/) ve [`lodestar`](https://lodestar.chainsafe.io/) Mutabakat Katmanı (MK) istemcileri desteğiyle yerel bir Ethereum test ağı oluşturur. Bu paket, Hardhat Network, Ganache ve Anvil gibi çerçevelerdeki ağlara yapılandırılabilir ve birleştirilebilir bir alternatif olarak hizmet eder. Kurtosis, geliştiricilere kullandıkları test ağları üzerinde daha fazla kontrol ve esneklik sunar; bu da [Ethereum Vakfı'nın Birleşim'i test etmek için Kurtosis'i kullanmasının](https://www.kurtosis.com/blog/testing-the-ethereum-merge) ve ağ yükseltmelerini test etmek için kullanmaya devam etmesinin önemli bir nedenidir.
+
+## Kurtosis'i kurma {#setting-up-kurtosis}
+
+Devam etmeden önce, şunlara sahip olduğunuzdan emin olun:
+
+- Yerel makinenizde [Docker motorunu kurun ve başlatın](https://docs.kurtosis.com/install/#i-install--start-docker)
+- [Kurtosis CLI'yi yükleyin](https://docs.kurtosis.com/install#ii-install-the-cli) (veya CLI zaten yüklüyse en son sürüme yükseltin)
+- [Node.js](https://nodejs.org/en), [yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable) ve [npx](https://www.npmjs.com/package/npx) (merkeziyetsiz uygulama ortamınız için) yükleyin
+
+## Yerel bir Ethereum test ağı oluşturma {#instantiate-testnet}
+
+Yerel bir Ethereum test ağı başlatmak için şunu çalıştırın:
+
+```python
+kurtosis --enclave local-eth-testnet run github.com/kurtosis-tech/eth-network-package
+```
+
+Not: Bu komut, `--enclave` bayrağını kullanarak ağınızı "local-eth-testnet" olarak adlandırır.
+
+Kurtosis, talimatları yorumlamak, doğrulamak ve ardından yürütmek için çalışırken perde arkasında attığı adımları yazdıracaktır. Sonunda, aşağıdakine benzer bir çıktı görmelisiniz:
+
+```python
+INFO[2023-04-04T18:09:44-04:00] ======================================================
+INFO[2023-04-04T18:09:44-04:00] || Enclave oluşturuldu: local-eth-testnet ||
+INFO[2023-04-04T18:09:44-04:00] ======================================================
+Name: local-eth-testnet
+UUID: 39372d756ae8
+Status: RUNNING
+Creation Time: Tue, 04 Apr 2023 18:09:03 EDT
+
+========================================= Dosya Yapıtları =========================================
+UUID Name
+d4085a064230 cl-genesis-data
+1c62cb792e4c el-genesis-data
+bd60489b73a7 genesis-generation-config-cl
+b2e593fe5228 genesis-generation-config-el
+d552a54acf78 geth-prefunded-keys
+5f7e661eb838 prysm-password
+054e7338bb59 validator-keystore-0
+
+========================================== Kullanıcı Hizmetleri ==========================================
+UUID Name Ports Status
+e20f129ee0c5 cl-client-0-beacon http: 4000/tcp ->