Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Zpracování chytrých smluv
description: Vysvětlení, proč je třeba kompilovat chytré kontrakty a co kompilace vlastně dělá.
title: "Kompilace chytrých kontraktů"
description: "Vysvětlení, proč je třeba kompilovat chytré kontrakty a co kompilace vlastně dělá."
lang: cs
incomplete: true
---
Expand All @@ -9,7 +9,7 @@ Kontrakt musíte zkompilovat tak, aby mu webová aplikace a virtuální stroj Et

## Předpoklady {#prerequisites}

Možná vám pomůže, když si před čtením o kompilaci přečtete náš úvod do [chytrých kontraktů](/developers/docs/smart-contracts/) a [virtuálního stroje Etherea](/developers/docs/evm/).
Možná vám pomůže, když si před čtením o kompilaci přečtete náš úvod do [chytrých kontraktů](/developers/docs/smart-contracts/) a [Ethereum Virtual Machine (EVM)](/developers/docs/evm/).

## EVM {#the-evm}

Expand All @@ -20,14 +20,14 @@ pragma solidity 0.4.24;

contract Greeter {

function greet() public constant returns (string) {
function greet() public view returns (string memory) {
return "Hello";
}

}
```

**tohle**
**v toto**

```
PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xCFAE3217 EQ PUSH2 0x46 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0xD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x80 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xC8 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SLT 0xec 0xe 0xf5 0xf8 SLT 0xc7 0x2d STATICCALL ADDRESS SHR 0xdb COINBASE 0xb1 BALANCE 0xe8 0xf8 DUP14 0xda 0xad DUP13 LOG1 0x4c 0xb4 0x26 0xc2 DELEGATECALL PUSH7 0x8994D3E002900
Expand Down Expand Up @@ -272,11 +272,11 @@ Níže je uvedeno ABI pro kontrakt na tokeny ERC-20. ERC-20 je token, se kterým
]
```

## Další informace {#further-reading}
## Další čtení {#further-reading}

- [ABI specifikace](https://solidity.readthedocs.io/en/v0.7.0/abi-spec.html) _– Solidity_
- [Specifikace ABI](https://solidity.readthedocs.io/en/v0.7.0/abi-spec.html) _– Solidity_

## Související témata {#related-topics}

- [JavaScriptové klientské knihovny](/developers/docs/apis/javascript/)
- [Virtuální stroj Etherea](/developers/docs/evm/)
- [Ethereum Virtual Machine (EVM)](/developers/docs/evm/)
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
title: Složitelnost chytrých kontraktů
description:
title: "Složitelnost chytrých kontraktů"
description: "Zjistěte, jak lze chytré kontrakty kombinovat jako kostky Lega a vytvářet tak komplexní dapps s využitím existujících komponent."
lang: cs
incomplete: true
---

## Stručné představení {#a-brief-introduction}
## Stručný úvod {#a-brief-introduction}

Chytré kontrakty na Ethereu jsou veřejné a lze je považovat za otevřená API. Nemusíte napsat vlastní chytrý kontrakt, abyste se stali vývojářem dapp, stačí vědět, jak s nimi pracovat. Například můžete použít existující chytré kontrakty [Uniswapu](https://uniswap.exchange/swap), decentralizované burzy, k obsluze veškeré logiky pro směnu tokenů ve vaší aplikaci – nemusíte začínat od nuly. Podívejte se na některé z jejich kontraktů [v2](https://github.com/Uniswap/uniswap-v2-core/tree/master/contracts) a [v3](https://github.com/Uniswap/uniswap-v3-core/tree/main/contracts).
Chytré kontrakty na Ethereu jsou veřejné a lze je považovat za otevřená API. Nemusíte napsat vlastní chytrý kontrakt, abyste se stali vývojářem dapp, stačí vědět, jak s nimi pracovat. Můžete například použít stávající chytré kontrakty [Uniswapu](https://uniswap.exchange/swap), decentralizované burzy, k obsluze veškeré logiky pro směnu tokenů ve vaší aplikaci – nemusíte začínat od nuly. Podívejte se na některé z jejich kontraktů [v2](https://github.com/Uniswap/uniswap-v2-core/tree/master/contracts) a [v3](https://github.com/Uniswap/uniswap-v3-core/tree/main/contracts).

## Co je to složitelnost? {#what-is-composability}

Expand All @@ -19,17 +19,17 @@ Na Ethereu je každý chytrý kontrakt jakousi kostkou Lego – můžete použí

Chytré kontrakty na Ethereu jsou jako veřejná API, takže s nimi může kdokoli pracovat nebo je integrovat do své dappky za účelem přidání funkcionality. Složitelnost chytrých kontraktů obecně funguje na třech principech: modularita, autonomie a objevitelnost:

**1. Modularita**: Schopnost jednotlivých komponent vykonávat specifickou úlohu. Na Ethereu má každý chytrý kontrakt specifické použití (jak je ukázáno v příkladu Uniswapu).
**1.** Modularita\*\*: Schopnost jednotlivých komponent vykonávat specifickou úlohu. Na Ethereu má každý chytrý kontrakt specifické použití (jak je ukázáno v příkladu Uniswapu).

**2. Autonomie**: Složitelné komponenty musí být schopny fungovat nezávisle. Každý chytrý kontrakt na Ethereu je samostatně vykonávaný a může fungovat bez závislosti na jiných částech systému.
**2.** Autonomie\*\*: Složitelné komponenty musí být schopny fungovat nezávisle. Každý chytrý kontrakt na Ethereu je samostatně vykonávaný a může fungovat bez závislosti na jiných částech systému.

**3. Objevitelnost**: Vývojáři nemohou volat externí kontrakty nebo integrovat softwarové knihovny do aplikací, pokud nejsou veřejně dostupné. Chytré kontrakty jsou z podstaty open-source; kdokoli je může volat nebo může kódovou základnu větvit.
**3.** Objevitelnost\*\*: Vývojáři nemohou volat externí kontrakty nebo integrovat softwarové knihovny do aplikací, pokud nejsou veřejně dostupné. Chytré kontrakty jsou z podstaty open-source; kdokoli je může volat nebo může kódovou základnu větvit.

## Výhody složitelnosti {#benefits-of-composability}

### Kratší vývojový cyklus {#shorter-development-cycle}

Složitelnost zmenšuje množství práce, kterou musí vývojáři při vytváření [dappek](/apps/#what-are-dapps) udělat. [Jak říká Naval Ravikant](https://twitter.com/naval/status/1444366754650656770): „Open source znamená, že každý problém musí být vyřešen pouze jednou.“
Složitelnost snižuje množství práce, kterou musí vývojáři odvést při vytváření [dapps](/apps/#what-are-dapps). [Jak říká Naval Ravikant:](https://twitter.com/naval/status/1444366754650656770) „Open source znamená, že každý problém stačí vyřešit pouze jednou.“

Pokud existuje chytrý kontrakt, který řeší jeden problém, mohou ho ostatní vývojáři znovu použít, takže nemusí řešit stejný problém znovu. Tímto způsobem mohou vzít existující softwarové knihovny a přidat k nim další funkce, když vyvíjejí novou dappku.

Expand All @@ -43,34 +43,34 @@ Interoperabilita mezi komponentami ekosystému Ethereum zlepšuje uživatelskou

K ilustraci výhod interoperability použijeme příklad z arbitrážního obchodování:

Pokud se token obchoduje na `burze A` za vyšší cenu než na `burze B`, můžete využít cenový rozdíl k dosažení zisku. To však můžete udělat, pouze pokud máte dostatek prostředků k financování transakce (tj. nákup tokenu na `burze B` a prodej na `burze A`).
Pokud se token obchoduje na `exchange A` za vyšší cenu než na `exchange B`, můžete využít cenový rozdíl k dosažení zisku. To však můžete udělat, pouze pokud máte dostatek prostředků k financování transakce (tj. nákup tokenu na `exchange B` a prodej na `exchange A`).

V situaci, kdy nemáte dostatek prostředků na pokrytí takové směny, může být řešením blesková půjčka. [Bleskové půjčky](/defi/#flash-loans) jsou vysoce technické, ale základní myšlenkou je, že si můžete půjčit aktiva (bez zástavy) a ještě je stihnout v rámci _jedné_ transakce vrátit.
V situaci, kdy nemáte dostatek prostředků na pokrytí takové směny, může být řešením blesková půjčka. [Bleskové půjčky](/defi/#flash-loans) jsou vysoce technické, ale základní myšlenkou je, že si můžete půjčit aktiva (bez zástavy) a vrátit je v rámci _jedné_ transakce.

Vrátíme-li se k našemu původnímu příkladu, arbitrážní obchodník si může vzít velkou bleskovou půjčku, nakoupit tokeny na `burze B`, prodat je na `burze A`, splatit půjčený kapitál i s úroky a vydělat na tom, to vše v rámci jedné transakce. Tato složitá logika vyžaduje kombinování volání více kontraktů, což by nebylo možné, kdyby chytré kontrakty neměly interoperabilitu.
Když se vrátíme k našemu úvodnímu příkladu, arbitrážní obchodník si může vzít velkou bleskovou půjčku, nakoupit tokeny na `exchange B`, prodat je na `exchange A`, splatit kapitál + úrok a ponechat si zisk, a to vše v rámci jedné transakce. Tato složitá logika vyžaduje kombinování volání více kontraktů, což by nebylo možné, kdyby chytré kontrakty neměly interoperabilitu.

## Příklady složitelnosti na Ethereu {#composability-in-ethereum}
## Příklady složitelnosti v Ethereu {#composability-in-ethereum}

### Směny tokenů {#token-swaps}

Pokud vytvoříte dappku, která vyžaduje platbu za transakce v ETH, můžete uživatelům umožnit platit v jiných ERC-20 tokenech a to pomocí zavedení logiky pro směnu tokenů. Kód automaticky převede token uživatele na ETH, než kontrakt vykoná volanou funkci.

### Řízení {#governance}
### Správa {#governance}

Tvorba na míru šitých řídicích systémů pro [DAO](/dao/) může být drahá a časově náročná. Místo toho můžete k rychlému vytvoření řídicího frameworku pro vaše DAO použít open-source toolkit řízení, jako je [Aragon Client](https://client.aragon.org/).
Vytváření systémů správy na míru pro [DAO](/dao/) může být nákladné a časově náročné. Místo toho můžete použít open-source sadu nástrojů pro správu, jako je [Aragon Client](https://client.aragon.org/), k nastartování svého DAO a rychlému vytvoření rámce pro správu.

### Správa identity {#identity-management}

Místo vytváření vlastního autentizačního systému nebo nutnosti spoléhat se na centralizované poskytovatele, můžete ke správě autentizace uživatelů integrovat nástroje pro decentralizovanou identitu (DID). Příkladem je [SpruceID](https://www.spruceid.com/), open-source toolkit, který nabízí funkci „Přihlásit se pomocí Etherea“, která uživatelům umožňuje autentizovat identitu pomocí ethereovské peněženky.
Místo vytváření vlastního autentizačního systému nebo nutnosti spoléhat se na centralizované poskytovatele, můžete ke správě autentizace uživatelů integrovat nástroje pro decentralizovanou identitu (DID). Příkladem je [SpruceID](https://www.spruceid.com/), open-source sada nástrojů, která nabízí funkci „Přihlásit se pomocí Etherea“, která uživatelům umožňuje ověřovat identitu pomocí ethereovské peněženky.

## Související návody {#related-tutorials}

- [Nastartujte vývoj frontendového rozhraní pro dappky pomocí create-eth-app](/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/) _– Přehled o tom, jak používat create-eth-app k vytváření aplikací s populárními chytrými kontrakty._
- [Nastartujte vývoj frontendu pro dapps s create-eth-app](/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/) _– Přehled, jak použít create-eth-app k vytváření aplikací s populárními chytrými kontrakty, které jsou okamžitě k dispozici._

## Další informace {#further-reading}
## Další čtení {#further-reading}

_Víte o komunitním zdroji, který vám pomohl? Upravte tuto stránku a přidejte ho!_

- [Složitelnost je inovace](https://future.a16z.com/how-composability-unlocks-crypto-and-everything-else/)
- [Složitelnost je inovace](https://a16zcrypto.com/posts/article/how-composability-unlocks-crypto-and-everything-else/)
- [Proč je složitelnost důležitá pro Web3](https://hackernoon.com/why-composability-matters-for-web3)
- [Co je to složitelnost?](https://blog.aragon.org/what-is-composability/#:~:text=Aragon,connect%20to%20every%20other%20piece.)
- [Co je složitelnost?](https://blog.aragon.org/what-is-composability/#:~:text=Aragon,connect%20to%20every%20other%20piece.)
Loading