Ethereum Smart Contract - จะดำเนินการ Smart Contract ได้อย่างไร?



ในบทช่วยสอน Ethereum Smart Contract นี้คุณจะได้เรียนรู้วิธีสร้างปรับใช้และดำเนินการสัญญาอัจฉริยะโดยใช้ Truffle และ Ethereum Private Network

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

สนใจ Ethereum Development ไหม ลองดู Live นี้ .





เราจะดูหัวข้อต่อไปนี้ในบทช่วยสอน Ethereum Smart Contract:

  1. Use Case: Smart Contracts in Insurance Process
  2. ประโยชน์ของสัญญาอัจฉริยะ
  3. การติดตั้งข้อกำหนดเบื้องต้น
  4. การกำหนดค่า Genesis Block
  5. ใช้งาน Ethereum Private Network
  6. การสร้างบัญชี Ethereum
  7. การสร้าง Ethereum Smart Contract
  8. ดำเนินการ 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 ของคุณ ตระหนักถึงสิ่งนี้และเพียงเพื่อช่วยตัวเองจากการสูญเสียครั้งใหญ่คุณต้องทำประกันภัยความล่าช้าของเที่ยวบิน

การประกันภัยความล่าช้าของเที่ยวบิน - Edureka

ตอนนี้หากเที่ยวบินจาก 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 คืออะไรอย่างละเอียดถี่ถ้วนและช่วยให้คุณบรรลุความเชี่ยวชาญในเรื่องนั้น ๆ