
راهاندازی شبکه Proof of Authority
OpenEthereum یک موتور موافقتی Proof-of-Authority را برای استفاده با زنجیرههای مبتنی بر EVM پشتیبانی میکند. Proof-of-Authority یک جایگزین برای Proof-of-Work است که میتواند برای راهاندازی زنجیرههای خصوصی استفاده شود.
این وابسته به حل مسائل ریاضی دلخواه توسط گرهها نیست، بلکه از یک مجموعه از “مقامات” استفاده میکند – گرههایی که به طور صریح مجاز به ایجاد بلوکهای جدید و امنیت زنجیره بلوک هستند. زنجیره باید توسط اکثریت مقامات تأیید شود، در این صورت به عنوان بخشی از سابقه دائمی تلقی میشود. این امر باعث میشود نگهداری یک زنجیره خصوصی و مسئولیت پذیری ارائه دهندگان بلوک آسانتر شود.
برای تنظیم تشکلی، معایب شبکه PoA نسبت به PoW وجود ندارد. این امر امنتر است (زیرا یک حملهکننده با اتصال ناخواسته یا مقام هک شده نمیتواند یک شبکه را متسلط شود و احتمالاً تمام معاملات را بازگرداند)، کمتر محاسباتی است (کاهش دشواری ماینینگ که امنیت را فراهم میآورد نیاز به محاسبات زیادی دارد)، عملکرد بهتر دارد (موافقت Aura منجر به کاهش تاخیر پذیرش معاملات میشود) و قابل پیشبینیتر است (بلوکها به فواصل زمانی ثابت صادر میشوند). پیادهسازیهای PoA توسط شرکتها و عموم (به عنوان مثال شبکه آزمایشی محبوب Görli) استفاده میشود.
پیشنهاد ویژه: آموزش بلاکچین
راهاندازی یک شبکه Proof of Authority
- انتخاب نهادهای واقعی که باید کنترل شبکه را داشته باشند، به آنها مقامات گفته میشود.
- هر مقام باید یک گره OpenEthereum را اجرا کند و یک حساب ایجاد کند.
- مقامات باید آدرسهای حساب خود را تبادل کرده و آنها را در مشخصات یا قرارداد اعتبارسنج قرار دهند.
- تمام گرههای مقام باید یک نمونه از OpenEthereum را با مشخصات موافق اجرا کنند.
- گرههای کاربر اضافی هم میتوانند به شبکه متصل شوند.
- از شبکه همانند یک شبکه عمومی Ethereum استفاده کنید (معاملات، قراردادها و غیره).
آموزش Demo PoA توضیح میدهد چگونه دو گره را راهاندازی کرده و آنها را به یکدیگر متصل کنید.
اجرای گرههای مقام
هر گره در شبکه باید گره خود را با فایل JSON مشخصات زنجیره که به گزینه –chain ارائه میشود، اجرا کند. فرمت چنین فایلی به موتور توافقی استفاده شده بستگی دارد و در صفحه مشخصات زنجیره توضیح داده شده است.
اگر انتظار دارید بلوکها را صادر کنید، مطمئن شوید که –engine-signer را به یک آدرس حساب (0xآدرس) موجود در پیکربندی موتور تحت مقامها تنظیم کردهاید و فایل رمز عبور برای آن حساب را به –password ارائه دادهاید.
OpenEthereum برای هر زنجیره یک دایرکتوری جداگانه دارد، بنابراین مطمئن شوید که حساب در زنجیره مشخص شده قابل مشاهده است (حسابی با –chain ایجاد کنید، کلیدها را وارد کنید یا از –keys-path استفاده کنید).
باید اطمینان حاصل کنید که هر کس دیگری که میخواهید در شبکه بلوکها صادر کند، به همان شکل پیکربندی شده باشد. هر مقام فقط میتواند یک گره را اجرا کند و برای استفاده از ظرفیت کامل شبکه هر مقام باید یک گره اجرا کند. برای اجرای تراکنشها به صورت رایگان، گرههای مقام میتوانند با –usd-per-tx 0 اجرا شوند. تنظیمات همچنین میتواند از طریق فایل پیکربندی با فیلدهای زیر انجام شود:
[parity]
chain = /path/to/json/spec
[account]
password = [/path/to/password]
[mining]
engine_signer = 0x37f93cfe411fa244b87ff257085ee360fca245e8
reseal_on_txs = none // Authorities reseal automatically
usd_per_tx = 0 // Allows for free transactions.
راه اندازی شبکه متمرکز خصوصی
هنگام استقرار PoC مفید است که ابتدا یک شبکه مدیریت مرکزی راه اندازی شود. با OpenEthereum گره ها می توانند یکسان باشند و به سادگی رابط RPC را در معرض یک گره مدیریت مرکزی قرار دهند، تمام تنظیمات بیشتر را می توان از طریق آن رابط ها انجام داد.
RPC های مفید
گره های مستقر شده را به هم وصل کنید:
parity_enode() enode یک نمونه خاص را برمی گرداند
parity_addReservedPeer(enode) enode را به لیست همتاهای رزرو شده اضافه می کند (برای جلوگیری از اتصالات دیگر با –reserved-only اجرا شود)
ایجاد حساب کاربری:
personal_newAccount(password) حساب جدیدی ایجاد می کند و آدرس آن را برمی گرداند
parity_newAccountFromPhrase (عبارت، رمز عبور) یک حساب به طور قطعی ایجاد می کند و آدرس آن را برمی گرداند (همیشه برای یک ورودی مشخص یکسان است)
اعتبار سنجی بلوک ها:
parity_setEngineSigner (آدرس، رمز عبور) این را روی یکی از آدرس های مرجع تنظیم کنید تا در اجماع شرکت کنید
روش های بیشتر برای استفاده واقعی از گره ها را می توان در اینجا یافت.
مشخصات موتور زنجیره ای
برای ایجاد یک زنجیره اثبات اعتبار، یک فایل مشخصات JSON باید به –chain با مقامات تنظیم شده برای تصحیح آدرس ها ارائه شود.
الگوی نمونه ای که می تواند برای الگوریتم های اجماع استفاده شود:
{
name: ChainName,
engine: ENGINE_HERE,
params: {
accountStartNonce: 0x0,
maximumExtraDataSize: 0x20,
minGasLimit: 0x1388,
networkID : 0x2323
},
genesis: {
seal: SEAL_HERE,
difficulty: 0x20000,
author: 0x0000000000000000000000000000000000000000,
timestamp: 0x00,
parentHash: 0x0000000000000000000000000000000000000000000000000000000000000000,
extraData: 0x,
gasLimit: 0x5B8D80
},
accounts: {
0x0000000000000000000000000000000000000001: { balance: 1, builtin: { name: ecrecover, pricing: { linear: { base: 3000, word: 0 } } } },
0x0000000000000000000000000000000000000002: { balance: 1, builtin: { name: sha256, pricing: { linear: { base: 60, word: 12 } } } },
0x0000000000000000000000000000000000000003: { balance: 1, builtin: { name: ripemd160, pricing: { linear: { base: 600, word: 120 } } } },
0x0000000000000000000000000000000000000004: { balance: 1, builtin: { name: identity, pricing: { linear: { base: 15, word: 3 } } } },
0x9cce34f7ab185c7aba1b7c8140d620b4bda941d6: { balance: 1606938044258990275541962092341162602522202993782792835301376 }
}
}
Aura و Clique دو الگوریتم اجماع موجود برای PoA هستند. جزئیات بیشتر در مورد سایر پارامترهای زنجیره در صفحه مشخصات زنجیره موجود است، همچنین ملاحظات مهمی در هنگام تنظیم زنجیره اثبات صلاحیت شما وجود دارد تا از عملکرد قابل اطمینان آن اطمینان حاصل کنید.
آموزش رایگان سالیدیتی را از دست ندهید.
منبع : https://openethereum.github.io/Proof-of-Authority-Chains

سعیده بیات
Leave a comment
Your email address will not be published. Required fields are marked *