ในก่อนหน้านี้ บทช่วยสอน Truffle Ethereum คุณได้เรียนรู้เกี่ยวกับ Truffle Suite และพัฒนาไฟล์ Ethereum DApp. ในการพัฒนาแอปพลิเคชัน ethereum ที่ซับซ้อนคุณจะต้องเรียกใช้บนเครือข่ายส่วนตัวเพื่อดูว่ามันทำงานอย่างไรก่อนที่จะปรับใช้ ดังนั้นในบทช่วยสอน Ethereum Private Network นี้คุณจะได้เรียนรู้วิธีสร้างไฟล์ เครือข่าย Ethereum ส่วนตัว และวิธีการทำธุรกรรมระหว่างสองบัญชี
สนใจ Ethereum Development ไหม ตรวจสอบการถ่ายทอดสด .
การสอน Ethereum Private Network
นี่คือหัวข้อที่ฉันจะกล่าวถึงในบทช่วยสอนนี้:
- Ethereum Private Network คืออะไร?
- เหตุใดจึงใช้ Ethereum Private Network
- คุณสมบัติของ Ethereum Private Network
- การติดตั้ง Ethereum บน Ubuntu
- การสาธิต: การสร้าง Ethereum Private Network และการทำธุรกรรม
Ethereum Private Network คืออะไร?
Ethereum Private Network เป็นบล็อกเชนส่วนตัวที่แยกออกจากเครือข่าย Ethereum หลัก Ethereum Private Network ส่วนใหญ่สร้างขึ้นโดยองค์กรเพื่อ จำกัด สิทธิ์ในการอ่านของ Blockchain เฉพาะโหนดที่มีสิทธิ์ที่เหมาะสมเท่านั้นที่จะสามารถเข้าถึง Blockchain นี้ได้ โหนดในเครือข่ายนี้ไม่ได้เชื่อมต่อกับโหนดเครือข่ายหลักและการเข้าถึงถูก จำกัด ไว้ที่ Blockchain ส่วนตัวนี้เท่านั้น
เหตุใดจึงใช้ 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 คืออะไรอย่างละเอียดถี่ถ้วนและช่วยให้คุณบรรลุความเชี่ยวชาญในเรื่องนั้น ๆ