-
-
Notifications
You must be signed in to change notification settings - Fork 99
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #335 from kehiy/main
feat: transactions and messages: adding transactions (chapter12/ethereum)
- Loading branch information
Showing
12 changed files
with
76 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
74 changes: 72 additions & 2 deletions
74
content/chapter 12/ethereum/12.3.5-transactions-messages.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,76 @@ | ||
--- | ||
title: 12.3.5 تراکنش ها و پیغام ها | ||
title: 12.3.5 تراکنش ها و پیام ها | ||
slug: ethereum-transactions-and-messages | ||
weight: 25505 | ||
--- | ||
تراکنش ها و پیغام ها | ||
|
||
# 12.3.5.1 تراکنش ها در بلاکچین اتریوم | ||
|
||
تراکنش ها در شبکه اتریوم دارای خصوصیاتی متفاوت از تراکنش ها در بیتکوین هستند. علل اصلی این تفاوت ها روش متفاوت اتریوم برای جلوگیری از برخی از حملات و همچنین نیاز به مناسب بودن برای اجرا کانترکت ها در ازای تراکنش ها می باشد. | ||
|
||
|
||
در اتریوم تراکنش ها بصورت اتمیک هستند. یعنی ما نمیتوانیم یک تراکنش را به قسمت های دیگری تقسیم و بصورت جدا اجرا و اراعه کنیم. همچنین وضعیت یک تراکنش در اتریوم تنها دو حالت میتوانند داشته باشند. یا انجام شده اند و تغییری برروی ورلد استیت ایجاد کرده اند یا انجام نشده و اثری بر شبکه ندارند. | ||
|
||
{{<img url="#" image="../../../assets/img/content/chapter12/ethereum/atomic-transaction.png" alt="atomic">}} | ||
|
||
در شبکه اتریوم تراکنش ها بصورت ترتیبی و اجرا شوند و هیچ دو تراکنشی بصورت همزمان اجرا و پردازش نمیشوند. همچنین تراکنش ها در اتریوم قابلیت همپوشانی ندارند. | ||
|
||
{{<img url="#" image="../../../assets/img/content/chapter12/ethereum/ordered-transaction.png" alt="ordered">}} | ||
|
||
## 12.3.5.1.1 فیلد های یک تراکنش در اتریوم | ||
|
||
اولین مقدار در یک تراکنش اتریومی نانس است. که در بخش حساب ها به ان پرداختیم. نانس یک عدد است که نشان میدهد چندمین تراکنشی است که توسط این حساب ایجاد میشود و تراکنش هایی با اطلاعات یکسان را متمایز میسازد که روشی جایگزین برای مقابله با reply attack. | ||
|
||
همانطور که میدانید بیتکوین از lock-time برای مقابله از این حمله استفاده میکند. | ||
|
||
دومین مقدار هر تراکنش قیمت gas میباشد. در اصل مبلغی است که ایجاد کننده تراکنش حاضر است در ازای هر gas بپردازد. | ||
|
||
سومین بخش محدودیت تعداد مراحل محساباتی است که برای اجرا تراکنش توسط ارسال کننده مشخص میشود. علت استفاده از این فیلد مدل Anti-DOS اتریوم میباشد. | ||
برتی مثال جلوگیری از ایجاد حلقه های بینهایت و یا هدر دادن منابع پردازشی. | ||
|
||
فیلد بعدی نشان دهنده آدرس مقصد تراکنش است. | ||
و بعد از آن مبلغ اتری که با این تراکنش جابه جا میشود. | ||
|
||
در نهایت فیلد دیتا که یک فیلد اختیاری است (در استقرار و صدا زدن قرارداد های هوشمند کاربرد دارد) شامل اطلاعاتی میشود که کانترکت مورد نظر میتواند انهارا بخواند. برای مثال اگر شما بخواهید یک رکورد ENS برای ایپی ادرس خود ثبت کنید در این قسمت از تراکنش خود ایپی و نام ENS خود را در صدا زدن کانترکت ENS قرار میدهید. | ||
|
||
همچنین تراکنش هایی که برای ایجاد یک قرارداد هوشمند جدید اجرا میشوند هم بایت کد های قرارداد هوشمند در این فیلد قرار میگیرد. | ||
|
||
اضافه کردن دیتا در این بخش مقدار gas را افزایش خواهد داد. | ||
|
||
{{<img url="#" image="../../../assets/img/content/chapter12/ethereum/transaction-fields.png" alt="fields">}} | ||
|
||
## 12.3.5.1.2 انواع تراکنش در اتریوم | ||
|
||
تراکنش هادر شبکه اتریوم به دو دسته تقسیم می شوند. دسته اول تراکنش هایی هستند که باعث ایجاد و یا همان استقرار یک قرارداد هوشمند جدید بر روی شبکه میشوند. دربخش های قبل به این مدل از تراکنش ها بصورت خلاصه پرداخته ایم. | ||
|
||
{{<img url="#" image="../../../assets/img/content/chapter12/ethereum/types-of-transaction.png" alt="types">}} | ||
|
||
این تراکنش ها در فیلد دیتا یک بایت کد معتبر EVM ای را شامل میشوند. | ||
ارسال کننده یا ادرس مقصد این تراکنش ها همیشه یک EOA میباشد که در نهایت مالک ان قرار داد به شمار می اید. | ||
|
||
مقصد این تراکنش ها ادرس صفر است. | ||
|
||
{{<img url="#" image="../../../assets/img/content/chapter12/ethereum/creating-contracts.png" alt="contracts">}} | ||
|
||
|
||
دسته دوم تراکنش ها در اتریوم تراکنش های message call است. | ||
|
||
در این تراکنش ها معمولا یا یک تابع در یک قرار داد هوشمند صدا زده میشود و یا یک جابه جایی اتر بین دو حساب شخصی صورت میگیرد. | ||
|
||
{{<img url="#" image="../../../assets/img/content/chapter12/ethereum/transaction-updating-contracts.png" alt="message-calls">}} | ||
|
||
|
||
# 12.3.5.1 پیام ها در بلاکچین اتریوم | ||
|
||
<!-- TODO --> | ||
|
||
#### مثال و درک بهتر | ||
|
||
در نهایت برای درک بهتر مفهایم تراکنش و پیام ها در شبکه اتریوم (یا هر مفهوم دیگری در هر شبکه دیگیری) بررسی کردن بلاک اکسپلورر آن شبکه و دیدن این موارد در حالت بصری کمک خیلی خوبی به درک این مساعل میکند. | ||
همچنین میتوانید با ایجاد یک حساب اتریوم در تست نت های اتریوم این موارد را بصورت عملی تست کنید. (در بخش های اینده به این مورد خواهیم پرداخت) | ||
|
||
[Ethereum Block explorer](https://etherscan.io/) | ||
|
||
#### ارجاعات | ||
|
||
1- [Messages and Transactions on Ethereum](https://cryptocurrency.medium.com/messages-and-transactions-on-ethereum-3c4dadfe7986) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+34.6 KB
static/assets/img/content/chapter12/ethereum/transaction-changing-world-state.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+85.2 KB
static/assets/img/content/chapter12/ethereum/transaction-updating-contracts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+46.3 KB
static/assets/img/content/chapter12/ethereum/transaction-world-state.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+64.5 KB
static/assets/img/content/chapter12/ethereum/types-of-transaction.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.