كيفية: إنشاء الخاصة بك Ethereum Blockchain

ويبرز ديف هذا الأسبوع

  • إصدار تحديث Dust Server اليوم لتضمين مكافآت تسجيل الدخول الخاصة بالمنطقة الزمنية للعميل
  • تحديثات عميل Android و iOS موجودة حاليًا في QA وسيتم إصدارها الأسبوع المقبل بما في ذلك الانفجارات الدعائية التي تم تمييزها الآن على أنها "تمت ترقيتها" ، وستحصل Dusters القديمة الآن على مكافآت ، بالإضافة إلى تحسينات أخرى في الأداء وإصلاح الأخطاء.
  • تصميم تحليلات المكافآت استعدادًا للتبديل إلى الشبكة الرئيسية
  • تطوير طريقة لدفع تكاليف الغاز Ethereum مع رمز ERC-20
  • البحث في آليات مختلفة لتخزين المحتوى على blockchain

كيفية: blockchain

تمثل هذه المشاركة الأولى في سلسلة "How To" جديدة بدأناها في محاولة لتوفير بعض الإرشادات السهلة القراءة التي تغطي الموضوعات التي وجدها مطورونا غير موثقة بشكل خاص عبر الإنترنت. بينما نتجاوز البيع المميز ، فإن تركيزنا الآن يساعد فرق المطورين الآخرين المهتمين بدمج GMT في تطبيقاتهم. تحقيقًا لهذه الغاية ، نعمل على زيادة إنتاج المحتوى الفني لدينا لتسهيل مطورين جدد يتطلعون إلى تجربة أيديهم باستخدام تقنية blockchain.

إذا كان لديك موضوع معين ترغب في رؤيته بالتفصيل في كيفية النشر ، فنحن نحب أن نسمع منك على info@mercuryprotocol.com.

"مرحبا ، Testnet"

يعد هذا دليلًا لبدء سلسلة Ethereum blockchain المخصصة الخاصة بك على نظام Mac ، ولا يجب الخلط بينها وبين بدء العقدة في سلسلة Ethereum blockchain الرئيسية. نحن هنا نبدأ سلسلة مفاتيح جديدة تمامًا ومستقلة لا يمكن أن تتفاعل مع Ethereum mainnet.

إن بدء سلسلة Ethereum blockchain الخاصة بك مفيد وتربوي وأكثر أمانًا من testnet العامة. إن تعلم إعداد testnet الخاص يوفر إمكانية الوصول إلى المفاهيم المجردة ، مثل التعدين ، وأقران الشبكات ، وحتى datadir geth.

المتطلبات الأساسية

تحتاج إلى تثبيت Geth. أسهل طريقة للقيام بذلك هي من خلال البيرة.

  1. فتح المحطة الطرفية وتثبيت البيرة
ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. الآن تثبيت geth

الشراب الصنبور ethereum / ethereum
الشراب تثبيت ethereum

إنشاء ملف سفر التكوين

كتلة Genesis هي أول كتلة في السلسلة ، وملف Genesis هو ملف JSON الذي يحدد خصائص تلك الكتلة الأولية وبعد ذلك بقية سلسلة blockchain.

  1. قم بإنشاء دليل للاحتفاظ بملفات الشبكة الخاصة بك
mkdir my-eth-chain
مؤتمر نزع السلاح سلسلة بلدي إيث

2. إنشاء ملف التكوين الخاص بك

المس myGenesis.json

3. فتح ملف التكوين الخاص بك ولصق ما يلي

{
   "config": {
      "chainId": 1994 ،
      "homesteadBlock": 0 ،
      "eip155Block": 0 ،
      "eip158Block": 0 ،
      "byzantiumBlock": 0
   }،
   "الصعوبة": "400" ،
   "gasLimit": "2000000" ،
   "تخصيص": {
      "7b684d27167d208c66584ece7f09d8bc8f86ffff": {
          "الرصيد": "100000000000000000000000"
      }،
      "ae13d41d66af28380c7af6d825ab557eb271ffff": {
          "الرصيد": "120000000000000000000000"
      }
   }
}

التكوين

  • chainId - هذا هو معرف السلسلة الخاص بك ، ويستخدم في حماية إعادة التشغيل.
  • homesteadBlock ، eip155Block ، eip158Block ، byzantiumBlock - هذه تتعلق بتسلسل السلسلة وإصدار الإصدارات ، لذلك في حالتنا يتيح لك تركهم 0 لأننا بدأنا سلسلة مفاتيح جديدة.

صعوبة

هذا يملي مدى صعوبة استخراج كتلة. يعد تعيين هذه القيمة منخفضة (حوالي 10 - 10000) مفيدًا في blockchain خاص لأنه يتيح لك عمليات إزالة الألغام بسرعة ، وهو ما يساوي المعاملات السريعة ، والكثير من ETH لاختباره. للمقارنة ، يحدد ملف Ethereum mainnet Genesis صعوبة 17179869184.

gasLimit

هذا هو إجمالي كمية الغاز التي يمكن استخدامها في كل كتلة. في ظل صعوبة التعدين المنخفضة ، ستتحرك الكتل بسرعة كبيرة ، لكن لا يزال يتعين عليك تعيين هذه القيمة عالية جدًا لتجنب الوصول إلى الحد وإبطاء الشبكة.

الوك

هنا يمكنك تخصيص ETH لعناوين محددة. لن ينشئ هذا الحساب لك ، لذا تأكد من أنه حساب لديك بالفعل التحكم فيه. ستحتاج إلى إضافة الحساب إلى سلسلتك الخاصة من أجل استخدامه ، ولكي تفعل ذلك تحتاج إلى الوصول إلى ملف keystore / utc. على سبيل المثال ، يمنحك Geth و MyEtherWallet الوصول إلى هذا الملف عند إنشاء حساب ، لكن Metamask و Coinbase لا يمنحك الوصول إلى هذا الملف. العناوين المقدمة ليست عناوين حقيقية ، إنها مجرد أمثلة. هنا نخصص 100،000 و 120،000 ETH على التوالي.

بدء العقدة الخاصة بك!

الآن تبدأ المتعة الحقيقية ، فنحن جميعًا مستعدون لإطلاق سلسلة Ethereum blockchain الجديدة الخاصة بنا.

1. إنشاء دليل بياناتك

geth - datadir ./myDataDir init ./myGenesis.json

2. ابدأ عقدة نظير Ethereum.

Networkid يساعد على ضمان خصوصية شبكتك. يمكنك استخدام أي رقم هنا (حيث استخدمنا الرقم "1114") ، ولكن يجب على الزملاء الآخرين الذين ينضمون إلى شبكتك استخدام الرقم نفسه.

geth - datadir ./myDataDir --networkid 1114 console 2 >> myEth.log

يجب أن يبدو الإخراج كما يلي:

مرحبًا بك في Geth JavaScript console!
مثال: Geth / v1.7.3-stabil-4bb3c89d / darwin-amd64 / go1.8.3
قاعدة العملات: 0xae13d41d66af28380c7af6d825ab557eb271ffff
في الكتلة: 5 (الخميس ، 07 كانون الأول 2017 17:08:48 PST)
البيانات: / المستخدمون / اختبار / my-eth-chain / myDataDir
الوحدات: admin: 1.0 clique: 1.0 debug: 1.0 eth: 1.0 miner: 1.0 net: 1.0 personal: 1.0 rpc: 1.0 txpool: 1.0 web3: 1.0
>

هذه هي وحدة جافا سكريبت JavaScript. يجب كتابة أي أمر مع الرمز هنا.

3. عرض سجلات Ethereum الخاص بك

  • افتح نافذة طرفية أخرى
  • مؤتمر نزع السلاح إلى بلدي إيث سلسلة
  • اكتب tail -f myEth.log

4. استيراد / إنشاء حساب

  • إذا قمت بتخصيص ETH في ملف Genesis ، فقم باستيراد الحساب المقابل بسحب ملف UTC إلى myDataDir / keystoredirectory وانتقل إلى الخطوة 5.
  • في وحدة جافا سكريبت JavaScript ، أنشئ حسابًا:
    > personal.newAccount ("")
  • لا تنسى عبارة المرور هذه! سوف تكتب هذا كثيرًا ، حتى تتمكن من إجراء اختبار بسيط لشبكة الاختبار هذه.

5. تعيين الحساب الافتراضي

  • تحقق من حسابك الافتراضي ، اكتب
    > eth.coinbase
  • إذا كان هذا العنوان هو نفسه العنوان من الخطوة 4 ، فتخطي باقي الخطوة 5.
  • لتعيين حسابك الافتراضي ، اكتب
    > miner.setEtherbase (web3.eth.accounts [0])

6. بدء التعدين

  • تحقق رصيدك مع
    > eth.getBalance (eth.coinbase)
  • يركض
    > miner.start ()
  • انظر إلى نافذتك الطرفية الأخرى ، سترى بعض أعمال التعدين في السجلات. تحقق من رصيدك مرة أخرى ويجب أن يكون أعلى.
  • لإنهاء التعدين ، اكتب
    > miner.stop ()

اختياري: أضف نظائر أخرى

إضافة المزيد من العقد إلى شبكة Ethereum الخاصة بك.

1. ابدأ نظيرًا آخر

  • على جهازك نفسه ، إنشاء نسخة جديدة من datadir:
geth - datadir ./peer2DataDir init ./myGenesis.json
  • قم بتشغيل النظير الثاني على منفذ مختلف:
geth --datadir ./peer2DataDir --networkid 1114 - port 30304 console 2 >> myEth2.log

2. عرض سجلات Ethereum الخاص بك

  • افتح نافذة طرفية أخرى
  • مؤتمر نزع السلاح إلى بلدي إيث سلسلة
  • اكتب tail -f myEth2.log

3. انضم إلى النظير الأول

  • في وحدة التحكم JavaScript geth من النظير الأول الخاص بك ، اكتب:
> admin.nodeInfo.enode
  • سيبدو الناتج كما يلي:
  • في وحدة جافا سكريبت JavaScript الخاصة بنظيرك الثاني الجديد ، اكتب:
> admin.addPeer ("enode: //b56882b93f4f97dd69f98c1dca1bd751c72374b5a8b5852288a56059a8cbc63614afd57274cfa7694177cf292a8d09d09d09d09d09d09f09d09d09d09f09d09d09f09d09d09d09d09d09d09f09d09d08d0f0d09:
  • تأكد من استبدال "enode: //… @" أعلاه بالإخراج من admin.nodeInfo.enode المخصص لك. كما هو موضح أعلاه ، يتم استبدال "[::]" بـ "127.0.0.1:30303" وهو IP: منفذ النظير الأول.

4. تحقق من العقد الآن التواصل

  • في وحدة جافا سكريبت JavaScript الخاصة بنظيرك الثاني الجديد ، اكتب:
> admin.peers
  • يجب أن يظهر المخرجات أن النظير 2 متصل بـ 127.0.0.1: 30303

مفيدة: أوامر وحدة التحكم geth

admin.nodeInfo.enode
net.listening
net.peerCount
admin.peers
eth.coinbase
eth.getBalance (eth.coinbase)
الشخصية
eth.accounts
miner.setEtherbase (web3.eth.accounts [0])
miner.setEtherbase ( "0xae13d41d66af28380c7af6d825ab557eb271ffff")
miner.start ()
miner.stop ()
miner.hashrate
eth.getBlock (0)
eth.getBlock ( "آخر")
eth.blockNumber
web3.eth.getBlock (BLOCK_NUMBER) .hash
eth.syncing
debug.verbosity (6) // أعلى مستوى تسجيل ، 3 هو الإعداد الافتراضي

شارك أفكارك معنا في أي من قنوات المجتمع المرتبطة أدناه!

الاتصال

تثاقل
برقية
تغريد
رديت
فيس بوك
ينكدين

تعرف على المزيد حول بروتوكول الزئبق
اقرأ الورقة البيضاء لبروتوكول الزئبق