Ethereum Private Network - สร้าง Ethereum Blockchain ของคุณเอง!



ในบทช่วยสอน Ethereum Private Network นี้คุณจะได้เรียนรู้วิธีสร้าง Ethereum Blockchain ของคุณเองและวิธีการทำธุรกรรมระหว่างสองบัญชี

ในก่อนหน้านี้ บทช่วยสอน Truffle Ethereum คุณได้เรียนรู้เกี่ยวกับ Truffle Suite และพัฒนาไฟล์ Ethereum DApp. ในการพัฒนาแอปพลิเคชัน ethereum ที่ซับซ้อนคุณจะต้องเรียกใช้บนเครือข่ายส่วนตัวเพื่อดูว่ามันทำงานอย่างไรก่อนที่จะปรับใช้ ดังนั้นในบทช่วยสอน Ethereum Private Network นี้คุณจะได้เรียนรู้วิธีสร้างไฟล์ เครือข่าย Ethereum ส่วนตัว และวิธีการทำธุรกรรมระหว่างสองบัญชี

สนใจ Ethereum Development ไหม ตรวจสอบการถ่ายทอดสด .





การสอน Ethereum Private Network

นี่คือหัวข้อที่ฉันจะกล่าวถึงในบทช่วยสอนนี้:

Ethereum Private Network คืออะไร?

Ethereum Private Network เป็นบล็อกเชนส่วนตัวที่แยกออกจากเครือข่าย Ethereum หลัก Ethereum Private Network ส่วนใหญ่สร้างขึ้นโดยองค์กรเพื่อ จำกัด สิทธิ์ในการอ่านของ Blockchain เฉพาะโหนดที่มีสิทธิ์ที่เหมาะสมเท่านั้นที่จะสามารถเข้าถึง Blockchain นี้ได้ โหนดในเครือข่ายนี้ไม่ได้เชื่อมต่อกับโหนดเครือข่ายหลักและการเข้าถึงถูก จำกัด ไว้ที่ Blockchain ส่วนตัวนี้เท่านั้น



ส่วนตัวและสาธารณะ -Ethereum Private Network กวดวิชา - Edureka

เหตุใดจึงใช้ Ethereum Private Network

องค์กรใช้ Ethereum Private Network เพื่อจัดเก็บข้อมูลส่วนตัวซึ่งไม่ควรให้บุคคลภายนอกองค์กรมองเห็น นอกจากนี้ Ethereum Private Network ยังใช้สำหรับการทดสอบและทดลอง Blockchain หากมีคนไม่ต้องการใช้เครือข่ายทดสอบสาธารณะ

คุณสมบัติของ Ethereum Private Network

ดังที่ได้กล่าวไว้ในหัวข้อก่อนหน้า Ethereum Private Network ถูกใช้เพื่อการทดสอบ แต่ทำไมบางคนถึงมีปัญหาในการสร้างเครือข่ายใหม่ในเมื่อมีเครือข่ายการทดสอบสาธารณะอยู่แล้ว? Ethereum Private Network มีชุดคุณสมบัติของตัวเองตามรายการด้านล่าง:



  • ทำหน้าที่เป็นฐานข้อมูลแบบกระจาย
  • Blockchain ใน Ethereum Private Network สามารถมีข้อมูลส่วนตัวได้ (เนื่องจากเครือข่ายไม่ใช่แบบสาธารณะ)
  • การเข้าถึงสามารถขึ้นอยู่กับสิทธิ์
  • การทำธุรกรรมสามารถทำได้ฟรี
  • สามารถจัดสรรบัญชีด้วยอีเทอร์ได้ด้วยตัวเราเองซึ่งไม่จำเป็นต้องซื้ออีเทอร์เสมือนด้วยซ้ำ

ต่อไปเรามาดูบทช่วยสอนเกี่ยวกับ Ethereum Private Network นี้กัน

การติดตั้ง Ethereum บน Ubuntu

ในการสร้าง Ethereum Private Network อันดับแรกเราต้องติดตั้ง Ethereum ในระบบของเรา ในส่วนนี้ของ Ethereum Private Network Tutorial คุณจะได้เรียนรู้วิธีการติดตั้ง Ethereum บน Ubuntu

ในการติดตั้ง Ethereum ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล:

$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum

เสร็จแล้ว! สิ่งนี้จะติดตั้ง Ethereum ในระบบของคุณ

เริ่มต้นด้วยการสร้างเครือข่ายส่วนตัว

การสาธิต: การสร้าง Ethereum Private Network และการทำธุรกรรม

ในบทช่วยสอนเกี่ยวกับเครือข่ายส่วนตัว Ethereum นี้เราจะส่งอีเธอร์จากบัญชีหนึ่งไปยังอีกบัญชีหนึ่งดังนั้นเราจึงต้องการบัญชี ตอนนี้เรามาดูวิธีสร้างบัญชีสำหรับ Blockchain ของเรากัน

การสร้างบัญชีสำหรับ Ethereum Private Network

ก่อนที่จะสร้างบัญชีใหม่ให้เราสร้างไดเรกทอรีใหม่สำหรับที่ทำงานของเรา อ้างถึงคำสั่งด้านล่างเพื่อดำเนินการนี้:

php แปลงอาร์เรย์เป็นวัตถุ
$ mkdir private-ethereum $ cd ส่วนตัว-ethereum

ในการทำธุรกรรมเราต้องมีบัญชีอย่างน้อยสองบัญชี: ผู้รับและผู้ส่ง

ในการสร้างสองบัญชีให้รันคำสั่งต่อไปนี้สองครั้ง:

$ geth --datadir ./datadir บัญชีใหม่

ป้อนไฟล์ รหัสผ่าน สำหรับแต่ละบัญชีเมื่อถูกถาม อย่าลืมข้อความรหัสผ่านนี้!

เมื่อคำสั่งเหล่านี้ทำงานสำเร็จจะมีการสร้างบัญชีสองบัญชีและที่อยู่บัญชีจะแสดงบนหน้าจอ

บันทึกที่อยู่เหล่านี้ไว้ที่อื่นเพราะเราจะใช้ต่อไป

การสร้างไฟล์ Genesis

ไฟล์ Genesis มีคุณสมบัติที่กำหนด Blockchain ไฟล์ Genesis เป็นจุดเริ่มต้นของ Blockchain ดังนั้นจึงจำเป็นต้องสร้างไฟล์ Genesis เพื่อสร้าง Blockchain ตอนนี้มาสร้างปฐมกาลไฟล์.

ขั้นแรกสร้างไฟล์ชื่อ genesis.json

$ nano genesis.json

ตอนนี้คัดลอกและวางรหัสต่อไปนี้ในไฟล์นั้น:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'ความยาก': '400', 'gasLimit': ' 2000000 ',' จัดสรร ': {' 82c440bba462220c9b54600e584373014706c177 ': {' balance ':' 100000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b207ca ': {' balance ':' 1200000000000000}

บันทึก: ในรหัสด้านบนให้แทนที่ที่อยู่ด้านล่าง จัดสรร ที่มีที่อยู่ของบัญชีที่คุณสร้างไว้ในขั้นตอนก่อนหน้า

บันทึกและออก

ให้ฉันอธิบายเนื้อหาของไฟล์ Genesis โดยสังเขป:

chainId - นี่คือหมายเลขประจำตัวโซ่ที่ใช้เพื่อแยกความแตกต่างระหว่าง Blockchains
homesteadBlock, eip155Block, eip158Block, byzantiumBlock - คุณสมบัติเหล่านี้เกี่ยวข้องกับการตีลูกโซ่และการกำหนดเวอร์ชัน เราไม่ต้องการสิ่งเหล่านี้สำหรับบทช่วยสอนของเราดังนั้นมาตั้งค่าเป็น 0 กัน
ความยาก - ตัวเลขนี้เป็นตัวตัดสินว่าบล็อกจะยากแค่ไหนในการขุด สำหรับเครือข่ายส่วนตัวคุณควรกำหนดจำนวนที่น้อยลงเนื่องจากช่วยให้คุณสามารถขุดบล็อกได้อย่างรวดเร็วซึ่งส่งผลให้เกิดธุรกรรมที่รวดเร็ว
gasLimit - ตัวเลขนี้คือปริมาณก๊าซทั้งหมดที่สามารถใช้ได้ในแต่ละบล็อก เราไม่ต้องการให้เครือข่ายของเราถึงขีด จำกัด ดังนั้นเราจึงตั้งค่านี้ไว้สูง
จัดสรร - ส่วนนี้ใช้เพื่อจัดสรรอีเธอร์ให้กับบัญชีที่สร้างไว้แล้ว

awt ใน java คืออะไร

ไฟล์ Genesis พร้อมแล้ว ตอนนี้ถึงเวลาเริ่มต้น Blockchain

สร้างอินสแตนซ์ไดเร็กทอรีข้อมูล

ก่อนที่จะเริ่มบล็อกเชนเราต้องสร้างอินสแตนซ์ไดเร็กทอรีข้อมูล Data Directory คือไดเร็กทอรีที่เก็บข้อมูลที่เกี่ยวข้องกับ Blockchain ในการสร้างอินสแตนซ์ไดเร็กทอรีข้อมูลให้รันคำสั่งต่อไปนี้:

$ geth --datadir ./myDataDir init ./genesis.json

ในการสร้างอินสแตนซ์สำเร็จคุณควรเห็นผลลัพธ์ต่อไปนี้:

ด้วย Data Directory ที่สร้างอินสแตนซ์ตอนนี้เราสามารถเริ่ม Blockchain ได้แล้ว

เริ่มต้น Ethereum Private Blockchain

ในการเริ่มต้น Blockchain ให้รันคำสั่งต่อไปนี้:

$ geth --datadir ./myDataDir --networkid 1114 คอนโซล 2 >> Eth.log

เสร็จแล้ว! Ethereum Blockchain ส่วนตัวของคุณพร้อมใช้งานแล้ว

ในคำสั่งข้างต้นเรากำลังส่งบันทึกทั้งหมดในไฟล์แยกต่างหากที่เรียกว่า Eth.log . Geth จะสร้างไฟล์ใหม่โดยอัตโนมัติหากไม่พบ

ผลลัพธ์ของโค้ดนี้ควรมีลักษณะดังนี้:

ตอนนี้เราได้เข้าสู่ ได้รับ คอนโซล ที่ซึ่งเราสามารถเรียกใช้คำสั่งสำหรับ Blockchain ของเรา

การอ่านบันทึก

ในส่วนก่อนหน้านี้ฉันได้กล่าวว่าเรากำลังจัดเก็บบันทึกในไฟล์อื่น ในส่วนนี้ฉันจะบอกวิธีอ่านบันทึกจากไฟล์นี้

เราจะอ่านบันทึกจากเทอร์มินัลแยกต่างหากดังนั้นก่อนอื่นมาเปิดเทอร์มินัลใหม่ ประการแรกเปลี่ยนเป็นไฟล์ ส่วนตัว ethereum ไดเร็กทอรีจากนั้นรันคำสั่งต่อไปนี้เพื่ออ่านบันทึก:

$ tail -f Eth.log

ตอนนี้คุณสามารถดูบันทึกในเทอร์มินัลได้ บันทึกเหล่านี้จะได้รับการอัปเดตแบบไดนามิกทุกครั้งที่มีกิจกรรมบางอย่างใน Blockchain

การนำเข้าบัญชีไปยังเครือข่ายส่วนตัว

คุณอาจจำได้ว่าเราสร้างบัญชีสองบัญชีเพื่อทำธุรกรรม แต่เราไม่ได้เพิ่มบัญชีเหล่านี้ในเครือข่ายของเรา ดังนั้นในส่วนของบทช่วยสอน Ethereum Private Network ฉันจะบอกวิธีการนำเข้าบัญชี

เมื่อเราสร้างบัญชีรายละเอียดทั้งหมดของบัญชีจะถูกเก็บไว้ในไฟล์ UTC ไฟล์ ในไดเร็กทอรีที่กล่าวถึงระหว่างการสร้างบัญชี (เส้นทาง: ./datadir/keystore ). ในการนำเข้าบัญชีเราจำเป็นต้องคัดลอกไฟล์เหล่านี้และวางในไฟล์ ที่เก็บคีย์ ไดเร็กทอรีภายใต้ Data Directory(เส้นทาง: ./myDataDir/keystore )

แค่นั้นแหละ! มีการนำเข้าบัญชี เรียบง่ายใช่ไหม ในการตรวจสอบการนำเข้าเราจะเรียกใช้คำสั่งต่อไปนี้ในไฟล์ ได้รับ คอนโซล

> eth.accounts

นี่จะแสดงรายการบัญชีทั้งหมดที่มี

ในการตรวจสอบยอดเงินของบัญชีเหล่านี้เราจะใช้คำสั่งต่อไปนี้:

> web3.fromWei (eth.getBalance (), 'อีเธอร์')

เราพร้อมทุกอย่างที่จำเป็นในการทำธุรกรรม ทำไมต้องรอ? มาทำกัน!

การทำธุรกรรม

ในบทช่วยสอน Ethereum Private Network นี้เราจะส่งอีเธอร์บางส่วนจากบัญชีหนึ่งไปยังอีกบัญชีหนึ่ง

ไวยากรณ์ที่จะส่งอีเธอร์มีดังนี้:

> eth.sendTransaction ({from:” address”, to:” address”, value: web3.toWei (amount, 'ether')})

เราจะส่งอีเธอร์ 1,000 ตัวจากบัญชี 1 ไปยังบัญชี 2 โดยใช้คำสั่งต่อไปนี้:

> eth.sendTransaction ({from: eth.accounts [0], to: eth.accounts [1], value: web3.toWei (1000, 'ether')})

ไม่ได้ผล? ไม่ต้องกังวล ก็ไม่ได้ผลสำหรับฉันด้วย เนื่องจากบัญชีถูกล็อกโดยค่าเริ่มต้นและไม่อนุญาตให้ทำธุรกรรม

ก่อนอื่นเราต้องปลดล็อกบัญชีผู้ส่ง จำข้อความรหัสผ่านที่คุณใช้ขณะสร้างบัญชีได้ไหม คุณต้องเพราะคุณจะต้องใช้มันเพื่อปลดล็อกบัญชี เราจะปลดล็อกบัญชีด้วยคำสั่งต่อไปนี้:

personal.unlockAccount (eth.accounts [0], '')

ตอนนี้เราจะส่งอีเธอร์สำเร็จ:

> eth.sendTransaction ({from: eth.accounts [0], to: eth.accounts [1], value: web3.toWei (1000, 'ether')})

สิ่งนี้ควรส่งคืนรหัสธุรกรรม

เป็น java ตาม c

เสร็จแล้ว! คุณทำรายการสำเร็จแล้ว!

ในการตรวจสอบธุรกรรมให้ตรวจสอบยอดเงินในบัญชีทั้งสอง

> web3.fromWei (eth.getBalance ('0x82c440bba462220c9b54600e584373014706c177') 'อีเธอร์')
> web3.fromWei (eth.getBalance ('0x9db5b590fdecc10cdb04b85a3503e94e61b207ca') 'อีเธอร์')

เย้! เราจะเห็นว่า 1,000 อีเธอร์ถูกส่งจากบัญชีหนึ่งไปยังอีกบัญชีหนึ่ง!

ยินดีด้วย! คุณได้สร้าง Ethereum Private Network และทำธุรกรรม ฉันหวังว่าบทช่วยสอน Ethereum Private Network นี้จะให้ข้อมูลและช่วยให้คุณเข้าใจเกี่ยวกับ Ethereum Private Network ตอนนี้ไปลองทดสอบกับเครือข่ายส่วนตัวที่สร้างขึ้นใหม่

มีคำถามสำหรับเรา? กรุณาโพสต์บน และเราจะติดต่อกลับ

หากคุณต้องการเรียนรู้ Blockchain และสร้างอาชีพใน Blockchain Technologies โปรดดูที่ ซึ่งมาพร้อมกับการฝึกอบรมสดที่นำโดยผู้สอนและประสบการณ์โครงการในชีวิตจริง การฝึกอบรมนี้จะช่วยให้คุณเข้าใจว่า Blockchain คืออะไรอย่างละเอียดถี่ถ้วนและช่วยให้คุณบรรลุความเชี่ยวชาญในเรื่องนั้น ๆ