> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/tr/canton-zk-evm/how-it-works.md).

# Nasıl çalışır

Bir Ostia bloğunu reth'ten ispatlamaya ve ardından Canton commit'ine kadar takip edin.

Her oluşturucu çalıştırması bir blok oluşturur, ispatlar ve gönderir. Canton, o bloğun zincirin bir sonraki başı olup olmadığına karar verir. Bir EVM bloğu ile onun kaydettiği Canton bacakları aynı işlemde kesinleşir.

Bu sayfa commit'i açıklar `a84e84e439a5cc669c0ae61facf7c8c995d9d564`. Tamamını oku [tasarım](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/docs/DESIGN.md).

```mermaid
flowchart TD
    W["EVM işlemleri"] --> R["reth talep üzerine oluşturur"]
    R --> B["Oluşturucu gateway bacaklarını okur ve onların Canton sözleşmelerini bulur"]
    B -->|"Bir bacak kesinleşemez: işlemini dışarıda bırak ve yeniden oluştur"| R
    B -->|"Her bacak kesinleşebilir"| P["ZisK bloğu ispatlar"]
    P --> A["İlerle: blok, ispat ve bacaklar tek bir Canton işleminde"]
    A --> S["Harici çağrı: yan araçlar ispatı ve gateway durumunu kontrol eder"]
    S --> D["Daml başı kontrol eder ve bacakları kesinleştirir"]
    D --> C["Canton bloğu ve bacaklarını birlikte kesinleştirir"]
    C --> F["reth bloğu nihai olarak işaretler"]
```

## Canton'un başı üzerinde oluştur

Cüzdanlar EVM işlemlerini reth'e gönderir. Sağlanan başlatıcı, eş keşfini kapalı tutar. Oluşturucu bir blok istediğinde reth bir blok oluşturur.

Oluşturucu önce etkin olanı okur `ZkChain` Canton üzerindeki sözleşme. reth'in başını, güvenli bloğunu ve kesinleşmiş bloğunu o kesinleşmiş başa taşır. Bekleyen işlemleri fiyata göre seçer, her gönderenin nonce sırasını korur ve gaz sınırı içinde kalır. reth'ten bu açık işlem listesiyle oluşturmasını ister.

Bir Canton eylemi gerektiren bir EVM işlemi gateway'i çağırır. Gateway bir bacak kaydeder ve bunu blok için devam eden bir karmaya dahil eder. Oluşturucu gateway'in olaylarını günlük sırasıyla okur ve her bacak için gereken Canton sözleşmelerini bulur.

Bir tahsis kalkmışsa, bir alıcı çekimleri kabul etmemişse ya da gereken başka bir sözleşme eksikse, oluşturucu işlemi ve o gönderenin sonraki işlemlerini dışarıda bırakır. reth'i Canton'un başına geri döndürür ve yeniden oluşturur. Bu kontroller ispatlamadan önce yapılır. Şu [builder README'si](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/builder/README.md) her bacak için kontrolleri listeler.

## Bloğu ispatla

Oluşturucu bloğu ve reth'in yürütme tanığını kaydeder. Girdi aracı, bloğu, tanığı ve genesis'i ispatlayıcı girdisinde birleştirir. ZisK, zincirin sabit kuralları altında bloğu doğrulayan guest'i çalıştırır.

İspatlayıcı, blok karmasını taahhüt eden 1.344 baytlık sarılmış bir ispat döndürür. Oluşturucu gönderir `İlerle` başlık, işlemler, ispat, bacaklar ve gateway'in hesap ve depolama kanıtlarıyla birlikte, bloğun durum kökünde.

## Tek işlemde kontrol et ve kesinleştir

Her onaylayan katılımcı bir yan araç çalıştırır. Canton'un harici çağrısı bloğu o katılımcının yan aracına `doğrula`için gönderir. İspatı, sabitlenmiş program anahtarını ve ZisK sürümünü, başlığın karmasını ve işlem listesinin kökünü kontrol eder.

Daml yanıtı karşı `ZkChain`: ebeveyn mevcut baş olmalı, numara bir sonraki numara olmalı ve gaz limiti ile kullanılan gaz sınırına sığmalıdır. Daml, yan aracın yanıtlarını karşılaştırır; sıfır bilgi ispatının kendisini doğrulamaz.

Daml ardından adını verdiği Canton sözleşmelerinden her bacak için bir satır yazar. Bir çekimin kimliği, yakıcısı ve miktarı oluşturucudan gelir; ispatlanmış karma bunları bloğun kaydettiğine bağlar. Yan aracın `kalemler` işlevi gateway'in hesap ve depolama kanıtlarını kontrol eder, bu satırları sırayla karmalar ve sonucu ispatlanmış durumdaki gateway değeriyle karşılaştırır. Bacak içermeyen bir blok, boş bir listeyle aynı kontrolden geçmelidir.

Daml bacakları sırayla kesinleştirir ve oluşturur `BlockRecord` ve sonraki `ZkChain`. Canton bu değişiklikleri birlikte kesinleştirir. Bir kontrol veya kesinleştirme başarısız olursa hiçbir şey kesinleşmez. Zincirin tek durum sözleşmesini tüketmek, blok sırası konusunda Canton'u yetkili kılar. Tamamını gör [Daml arayüzü](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/daml/README.md) ve [yan araç kontrolleri](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/sidecar/README.md).

## Canton reddederse

Canton bloğu kesinleştirdikten sonra, oluşturucu bunu reth'te nihai olarak işaretler. Canton bunu reddederse, oluşturucu reth'i Canton'un son kesinleştirilmiş bloğuna geri döndürür ve reddedilen bloğun işlemlerini havuza geri gönderir. Sonraki çalıştırma onların bacaklarını yeniden kontrol eder. Tahsisi geri alınmış bir ödeme dışarıda bırakılır.

Oluşturucu gönderim yanıtını kaybederse, bloğun kesinleşip kesinleşmediğini belirlemek için Canton'un başını yeniden okur. Bu okuma da başarısız olursa, bilinmeyen bir sonuç bildirir ve reth'i olduğu yerde bırakır. Sonraki çalışma Canton'un başından başlar. Bu kurtarma kuralları [builder README'si](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/builder/README.md#what-one-run-does).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/tr/canton-zk-evm/how-it-works.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
