เหตุผลหลักที่เทคโนโลยีบล็อกเชนได้รับตำแหน่งในกลุ่มเทคโนโลยีชั้นนำเนื่องจากลักษณะการกระจายอำนาจ ในขณะที่วัตถุประสงค์หลักของ Blockchain คือการรักษาบันทึกการทำธุรกรรมโดยไม่มีหน่วยงานกลางเพื่อทำให้สิ่งนี้เป็นไปโดยอัตโนมัติ สัญญาอัจฉริยะ ได้รับการแนะนำ แต่หลังจากนั้น เหรอ? ในบทช่วยสอน Ethereum Smart Contract นี้เราจะดูวิธีการใช้งาน ทรัฟเฟิล Ethereum และ เครือข่ายส่วนตัว Ethereum เพื่อดำเนินการตามสัญญาอัจฉริยะ
สนใจ Ethereum Development ไหม ลองดู Live นี้ .
เราจะดูหัวข้อต่อไปนี้ในบทช่วยสอน Ethereum Smart Contract:
- Use Case: Smart Contracts in Insurance Process
- ประโยชน์ของสัญญาอัจฉริยะ
- การติดตั้งข้อกำหนดเบื้องต้น
- การกำหนดค่า Genesis Block
- ใช้งาน Ethereum Private Network
- การสร้างบัญชี Ethereum
- การสร้าง Ethereum Smart Contract
- ดำเนินการ Ethereum Smart Contract
Use Case: Smart Contracts in Insurance Process
“ No Central Authority” คือสิ่งที่ Blockchain ติดตามและนั่นคือเหตุผลที่ Smart Contracts ถูกนำมาใช้ แต่คุณเคยสงสัยหรือไม่ว่า Smart Contract สามารถใช้งานได้อย่างไร? ในส่วนนี้ของ Ethereum Smart Contract ฉันจะอธิบายกรณีการใช้งานของสัญญาอัจฉริยะในกระบวนการประกันภัย
ลองพิจารณาตัวอย่างการประกันความล่าช้าของเที่ยวบิน สมมติว่าคุณต้องการใช้เที่ยวบินจากต้นทาง A ไปยังปลายทาง C แต่คุณไม่มีเที่ยวบินตรง ดังนั้นคุณจึงตัดสินใจที่จะบินต่อ (ถึง B) ตอนนี้เส้นทางของคุณคือจาก A ไป B และจาก B ไป C โดยที่ B คือสนามบินที่คุณจะเปลี่ยนเที่ยวบิน น่าเสียดายที่คุณไม่มีช่องว่างด้านเวลามากนักระหว่างเที่ยวบินจาก A ไป B และจาก B ไป C ดังนั้นหากมีโอกาสเกิดขึ้นเที่ยวบินจาก A ไป B ล่าช้าคุณจะพลาดเที่ยวบินจาก B ไป C ของคุณ ตระหนักถึงสิ่งนี้และเพียงเพื่อช่วยตัวเองจากการสูญเสียครั้งใหญ่คุณต้องทำประกันภัยความล่าช้าของเที่ยวบิน
ตอนนี้หากเที่ยวบินจาก A ไป B ของคุณล่าช้า (ซึ่งจะทำให้คุณพลาดเที่ยวบินจาก B ไป C) คุณจะได้รับเงินประกัน วิธีการทำงานปกติคือหากเที่ยวบินของคุณล่าช้าคุณจะต้องเคลมประกัน จากนั้นบุคคลที่นั่นจะตรวจสอบและอนุมัติการประกันภัยและสุดท้ายคุณจะได้รับเงินประกันของคุณ แต่นี่เป็นกระบวนการที่ค่อนข้างยาว
คุณจะใช้ Smart Contracts เพื่อปรับปรุงกระบวนการประกันภัยได้อย่างไร?
เมื่อพูดถึงธุรกรรมทางการเงินและโดยเฉพาะอย่างยิ่งเมื่อคุณได้รับเงิน“ ยิ่งเร็วยิ่งดี” ใช่หรือไม่? ดังนั้นเรามาดูกันว่า Smart Contracts สามารถทำให้กระบวนการประกันรวดเร็วขึ้นได้อย่างไร Smart Contracts คือสัญญาดิจิทัลที่ดำเนินการโดยอัตโนมัติเมื่อตรงตามเงื่อนไขบางประการ สามารถเขียนสัญญาอัจฉริยะเพื่อจ่ายเงินประกันให้กับผู้ที่เลือกใช้การประกันภัยความล่าช้าของเที่ยวบินหากเที่ยวบินล่าช้า ดังนั้นเมื่อเที่ยวบินล่าช้าและระบบบันทึกความล่าช้านี้ประกันจะจ่ายทันที
โฮล่า! จำนวนเงินประกันจ่ายในไม่กี่วินาที นี่คือวิธีที่ Smart Contracts ง่ายและรวดเร็วทำให้กระบวนการเกิดขึ้น
ประโยชน์ของสัญญาอัจฉริยะ
คุณได้เห็นในตัวอย่างข้างต้นแล้วว่า Smart Contract สามารถเร่งกระบวนการทางการเงินได้อย่างไร นอกเหนือจากการทำธุรกรรมที่รวดเร็ว Smart Contracts ยังมีสิทธิประโยชน์อีกมากมาย ฉันกำลังแสดงรายชื่อประโยชน์อื่น ๆ ของการใช้ Smart Contract:
- อัตโนมัติ: ขั้นตอนทั้งหมดในกระบวนการเกิดขึ้นโดยอัตโนมัติด้วย Smart Contracts
- ไม่มีตัวกลาง: เมื่อคุณใช้ Smart Contracts คุณไม่จำเป็นต้องมีคนกลางในการทำงานให้ลุล่วงเนื่องจาก Smart Contracts จะจัดการทุกอย่าง
- คุ้มค่า: การใช้ Smart Contracts จะช่วยให้คุณประหยัดเงินจากค่าธรรมเนียมการทำธุรกรรมที่เรียกเก็บโดยธนาคารและค่าบริการโดยตัวกลาง (ถ้ามี)
ตอนนี้เรารู้แล้วว่า Smart Contracts สามารถใช้เพื่อทำให้โลกเป็นที่ที่เร็วขึ้นได้อย่างไรมาดูบทช่วยสอน Ethereum Smart Contract นี้กัน
แปลงทศนิยมเป็นไบนารีใน python
การติดตั้งข้อกำหนดเบื้องต้น
สำหรับบทช่วยสอน Ethereum Smart Contract นี้เราต้องการ 5 แอปพลิเคชันที่สำคัญ:
- NodeJS
- NPM
- Ethereum
- แห้ว
- Solidity Compiler
การติดตั้ง NodeJS
NodeJS คือ JavaScript Framework ที่ใช้ในการสร้างเซิร์ฟเวอร์แอ็พพลิเคชัน ในขณะที่เราใช้เครือข่ายส่วนตัว NodeJS จะทำให้การสร้างแอปพลิเคชันเครือข่ายเป็นเรื่องง่าย
ในการติดตั้ง Nodejs ให้รันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
$ sudo apt-get install nodejs
การติดตั้ง NPM
NPM ย่อมาจาก Node Package Manager และใช้เพื่อรันแอปพลิเคชัน Nodejs
ในการติดตั้ง NPM ให้รันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
$ sudo apt-get install npm
การติดตั้ง Ethereum
Ethereum เป็นแพลตฟอร์มการประมวลผลแบบโอเพนซอร์สและบล็อกเชนสาธารณะสำหรับการสร้างแอปพลิเคชันแบบกระจายอำนาจ
ในการติดตั้ง 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
การติดตั้ง Truffle
Truffle เป็นสภาพแวดล้อมการพัฒนากรอบการทดสอบและท่อส่งสินทรัพย์สำหรับ Ethereum Blokchains
ในการติดตั้ง Truffle ให้รันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
$ npm ติดตั้ง -g แห้ว
การติดตั้ง Solidity Compiler
Solidity เป็นภาษาโปรแกรมที่ใช้ในการเขียน Smart Contracts ในการรันสัญญาอัจฉริยะบนระบบของเราเราต้องติดตั้ง Solidity Compiler
ในการติดตั้ง Solidity Compiler ให้รันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
$ sudo npm ติดตั้ง -g solc
การกำหนดค่า Genesis Block
Genesis Block เป็นจุดเริ่มต้นของ Blockchain และเราต้องการไฟล์กำเนิดเพื่อเริ่มต้น Blockchain ในส่วนนี้ของ Ethereum Smart Contract เราจะเขียนไฟล์ Genesis และกำหนดค่าเพื่อให้เราสามารถเรียกใช้ Smart Contracts ได้
ก่อนอื่นให้สร้างไดเรกทอรีใหม่จากนั้นในไดเรกทอรีนั้นเราจะสร้างไฟล์ ไฟล์กำเนิด
$ mkdir ethereum-network $ cd ethereum-network $ nano genesis.json
ตอนนี้ป้อนบรรทัดต่อไปนี้ในไฟล์ genesis.json ไฟล์:
{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0},'จัดสรร': {}, 'ความยาก': '200' 'gasLimit': '99999999999999'}
บันทึกสิ่งนี้และออก
ใช้งาน Ethereum Private Network
ในบทช่วยสอน Etheruem Smart Contract นี้เราจะปรับใช้ Ethereum Smart Contract บนเครือข่ายส่วนตัว ดังนั้นในการเริ่มเครือข่ายนี้เราจะใช้คำสั่งต่อไปนี้:
$ geth --datadir ./dataDir init ./genesis.json
$ geth - พอร์ต 4321 --networkid 1234 --datadir =. / dataDir --rpc --rpcport 8543 --rpcaddr 127.0.0.1 --rpcapi 'eth, net, web3, ส่วนบุคคล, คนงานเหมือง'
ก่อนที่จะดำเนินการต่อให้ฉันอธิบายแฟล็กที่สำคัญบางอย่างที่ใช้ในคำสั่งด้านบน:
ข้อมูล: ไดเร็กทอรีที่เก็บข้อมูลที่เกี่ยวข้องกับ Blockchain
rpc: เปิดใช้งานเซิร์ฟเวอร์ HTTP-RPC
rpcport และ rpcaddr ใช้เพื่อตั้งค่าพอร์ตและที่อยู่ของเครือข่ายตามลำดับ
rpcapi: อนุญาตให้เราโต้ตอบกับเครือข่าย Ethereum โดยใช้ API ที่แตกต่างกัน
เชื่อมต่อ Geth กับ Ethereum Private Blockchain
Geth console เป็นคอนโซลที่เราสามารถโต้ตอบกับ Ethereum Private Blockchain ในการเชื่อมต่อ Geth กับ Ethereum Private Blockchain ให้เปิดเทอร์มินัลใหม่และเรียกใช้คำสั่งด้านล่าง:
$ geth แนบ http://127.0.0.1:8543
ตอนนี้เราอยู่ในคอนโซล Geth ซึ่งเราสามารถเรียกใช้คำสั่งเพื่อโต้ตอบกับ Blockchain ได้
การสร้างบัญชี Ethereum
ในการทำธุรกรรมใด ๆ เราจำเป็นต้องมีบัญชี ในส่วนนี้ของบทช่วยสอน Ethereum Smart Contract เราจะดูวิธีสร้างบัญชี Ethereum ใหม่จากคอนโซล Geth
คลาสสุ่มในตัวอย่าง java
ทำตามขั้นตอนจนถึงตอนนี้เราอยู่ในคอนโซล Geth แล้ว ในการสร้างบัญชีใหม่ให้รันคำสั่งต่อไปนี้ในคอนโซล Geth:
> personal.newAccount ('seedphrase')
แทนที่ 'ข้อความเมล็ดพันธุ์” ด้วยรหัสผ่านที่คุณต้องการตั้งค่าสำหรับบัญชีนี้
เราได้สร้างบัญชีใหม่แล้ว แต่บัญชีนี้ไม่มีอีเธอร์. พวกเราต้องการอีเธอร์ทำธุรกรรมใด ๆ และรับอีเธอร์ในบัญชีของเราเราจะเริ่มขุดอีเธอร์ ในการเริ่มต้นการขุดเราต้องปลดล็อกบัญชีก่อน มาปลดล็อกบัญชีและเริ่มการขุด
> personal.unlockAccount (web3.eth.coinbase, 'seedphrase')> miner.start ()
เนื่องจากการขุดยังคงเกิดขึ้นบางส่วนอีเทอร์จะถูกฝากเข้าบัญชีนี้
บันทึก : อีเธอร์เหล่านี้คือ อีเทอร์จำลอง และไม่มีคุณค่าในโลกแห่งความเป็นจริง
เพื่อตรวจสอบยอดเงินอีเทอร์ในบัญชีเราจะเรียกใช้คำสั่งต่อไปนี้:
> web3.fromWei (eth.getBalance (eth.coinbase), 'อีเธอร์')
เมื่อคุณรันคำสั่งนี้ในช่วงเวลาปกติคุณจะเห็นว่าไฟล์อีเทอร์กำลังเพิ่มขึ้นเนื่องจากการขุด
ใช้เนมสเปซ c ++
หากต้องการหยุดการขุดให้รันคำสั่งต่อไปนี้:
> miner.stop ()
การสร้าง Ethereum Smart Contract
การสร้างโครงการ Truffle
ตอนนี้เรามี Blockchain ส่วนตัวพร้อมแล้วเราจะมาดูวิธีสร้าง Ethereum Smart Contract โดยใช้ Truffle สำหรับบทช่วยสอนนี้เราจะสร้าง Ethereum Smart Contract แบบง่ายๆ“ Hello World”
เริ่มต้นด้วยสิ่งนี้ก่อนอื่นให้เราสร้างไดเร็กทอรีใหม่เพื่อจัดเก็บโปรเจ็กต์ Truffle จากนั้นในไดเร็กทอรีนั้นเราจะสร้างโปรเจ็กต์ Truffle ใหม่ เปิดเทอร์มินัลใหม่และเรียกใช้คำสั่งด้านล่าง:
ทรัฟเฟิล $ mkdir $ cd truffle $ truffle init
เริ่มต้นทรัฟเฟิล คำสั่งจะสร้างไฟล์ที่จำเป็นทั้งหมดที่จำเป็นสำหรับโปรเจ็กต์ทรัฟเฟิล
ตอนนี้เรามีทุกอย่างที่จะทำให้ Ethereum Smart Contract พร้อมใช้งานแล้วเรามาเริ่มเขียนสัญญาอัจฉริยะ“ Hello World” กัน
การเขียนสัญญาอัจฉริยะ“ Hello World”
สัญญาทั้งหมดควรเขียนไว้ในไดเรกทอรี 'สัญญา' เราจะเปลี่ยนไปใช้ไดเร็กทอรีนี้และสร้างสัญญาด้วยชื่อ“ HelloWorld.sol” และเพิ่มบรรทัดต่อไปนี้ในไฟล์นี้:
pragma solidity ^ 0.4.15 สัญญา HelloWorld {string public message function Hello () public {message = 'Hello World!' }}
นี่ไง! แต่สัญญาอัจฉริยะนี้ไม่สามารถดำเนินการได้ด้วยตัวเอง เราจะต้องทำการกำหนดค่าบางอย่างสำหรับมัน
การกำหนดค่า Truffle Migration
ในการย้าย Smart Contract ของเราเราจะต้องเพิ่มไฟล์ในไฟล์ “ การย้ายข้อมูล” ไดเร็กทอรีใน 'แห้ว' ไดเรกทอรี ในไดเร็กทอรีนี้เราจะเพิ่มไฟล์ชื่อ “ 2_deploy_contracts.js” โดยมีเนื้อหาดังต่อไปนี้:
var HelloWorld = artifacts.require ('./ HelloWorld.sol') module.exports = function (deployer) {deployer.deploy (HelloWorld)}
บันทึกและออก.
ในการเรียกใช้ทรัฟเฟิลบนเครือข่ายของเราเราจำเป็นต้องแก้ไข ' truffle.js ” ในไฟล์ 'แห้ว' ไดเรกทอรี . เปิดไฟล์นี้และสร้างรายการต่อไปนี้:
module.exports = {rpc: {โฮสต์: 'localhost', พอร์ต: 8543}, เครือข่าย: {การพัฒนา: {โฮสต์: 'localhost', พอร์ต: 8543, network_id: '*' จาก: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a' ก๊าซ: 20000000}}}
บันทึก: แทนที่ 'จาก' ที่อยู่พร้อมกับที่อยู่ของบัญชีที่คุณสร้างในขั้นตอนก่อนหน้า
ดำเนินการ Ethereum Smart Contract
ในส่วนสุดท้ายของบทช่วยสอน Ethereum Smart Contract เราจะดูวิธีการปรับใช้ Smart Contract ของ“ Hello World” บนเครือข่ายส่วนตัว Ethereum ของเรา
การรวบรวมและปรับใช้ Smart Contract
ก่อนที่เราจะดำเนินการ Smart Contract ได้เราต้องคอมไพล์และปรับใช้กับ Ethereum Private Network ก่อน เราจะทำโดยใช้คำสั่งต่อไปนี้:
คอมไพล์ $ truffle
ตอนนี้เราต้องปลดล็อกบัญชีของเราและเริ่มการขุด กลับไปที่เทอร์มินัลด้วยคอนโซล Geth และรันคำสั่งต่อไปนี้:
> personal.unlockAccount (web3.eth.coinbase) > miner.start ()
จากนั้นกลับไปที่เทอร์มินัลที่มี 'แห้ว' เป็นไดเร็กทอรีการทำงานปัจจุบันและวิ่งคำสั่งต่อไปนี้:
$ truffle โยกย้าย
รอให้การปรับใช้เสร็จสิ้น
ดำเนินการสัญญาอัจฉริยะบน Ethereum Blockchain ส่วนตัว
ในการดำเนินการสัญญาอัจฉริยะ“ Hello World” เราจะต้องเข้าสู่คอนโซลทรัฟเฟิล รันคำสั่งต่อไปนี้เพื่อทำสิ่งนี้:
$ ทรัฟเฟิลคอนโซล
ตอนนี้คุณจะอยู่ในคอนโซลทรัฟเฟิล ในการดำเนินการ Smart Contract ให้รันคำสั่งต่อไปนี้:
> var first_contract> HelloWorld.deployed () แล้ว (ฟังก์ชัน (อินสแตนซ์) {first_contract = instance})> dApp.message.call ()
ยินดีด้วย! คุณได้สร้าง Ethereum Smart Contract แรกของคุณและดำเนินการ ฉันหวังว่าบทช่วยสอน Ethereum Smart Contract นี้จะให้ข้อมูลและช่วยให้คุณเข้าใจเกี่ยวกับวิธีดำเนินการ Ethereum Smart Contract ตอนนี้ไปข้างหน้าและลองเขียน Smart Contracts อื่น ๆ และดำเนินการ
มีคำถามสำหรับเรา? กรุณาโพสต์บน และเราจะติดต่อกลับ
หากคุณต้องการเรียนรู้ Blockchain และสร้างอาชีพใน Blockchain Technologies โปรดดูที่ ซึ่งมาพร้อมกับการฝึกอบรมสดที่นำโดยผู้สอนและประสบการณ์โครงการในชีวิตจริง การฝึกอบรมนี้จะช่วยให้คุณเข้าใจว่า Blockchain คืออะไรอย่างละเอียดถี่ถ้วนและช่วยให้คุณบรรลุความเชี่ยวชาญในเรื่องนั้น ๆ