BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

สินค้าแห้ง | คำอธิบายโดยละเอียด ประสบการณ์ครั้งแรกของแอปพลิเคชันการปรับใช้ Thunderchain

星球君的朋友们
Odaily资深作者
2018-10-17 09:41
บทความนี้มีประมาณ 4295 คำ การอ่านทั้งหมดใช้เวลาประมาณ 7 นาที
นี่เป็นครั้งแรกที่ฉันรู้จัก Thunderchain และฉันคิดว่า Thunderchain เป็นตัวเลือกที่ดี ดังนั้นฉันจึงคิดว่า
สรุปโดย AI
ขยาย
นี่เป็นครั้งแรกที่ฉันรู้จัก Thunderchain และฉันคิดว่า Thunderchain เป็นตัวเลือกที่ดี ดังนั้นฉันจึงคิดว่า

นี่เป็นครั้งแรกที่ฉันรู้จัก Thunderchain และฉันคิดว่า Thunderchain เป็นตัวเลือกที่ดี ดังนั้นฉันจึงคิดว่ามันสามารถพัฒนาและนำไปใช้ได้ Thunderchain จัดเตรียมสภาพแวดล้อมแบบ Sandbox สำหรับการทดสอบและเอกสารอย่างเป็นทางการเขียนรายละเอียดเพิ่มเติม แต่ฉันได้ทำการปรับใช้ที่เกี่ยวข้องในสภาพแวดล้อมแซนด์บ็อกซ์นี้แล้ว ดังนั้นฉันจะจัดทำบทช่วยสอนสำหรับการโทร

ในการใช้สภาพแวดล้อมการทดสอบ คุณต้องเตรียมสภาพแวดล้อมการทดสอบ เช่น บัญชีนักพัฒนาสำหรับการทดสอบและกระเป๋าเงิน LinkToken สำหรับการทดสอบ เอกสารอย่างเป็นทางการมี API มากมายเพื่อตอบสนองความต้องการของนักพัฒนา ขั้นตอนแรกในการพัฒนาแอปพลิเคชันสัญญาของคุณเองโดยใช้ ThunderChain คือการลงทะเบียนอีเมลสำหรับนักพัฒนา


หากนักพัฒนาต้องการให้แอปของตนใช้บริการสัญญาของแพลตฟอร์มเปิด ThunderChain พวกเขาเพียงแค่เรียก URL โครงสร้าง และอินเทอร์เฟซที่เกี่ยวข้องสามารถดูได้จากเอกสารทางการ ตัวอย่างเช่น คำสั่ง curl ของบรรทัดคำสั่งสามารถใช้กับอีเมลได้ ลงทะเบียนและกรอกที่อยู่อีเมล json ด้วยตัวเอง ที่อยู่อีเมลของคุณจะทำ:

curl -H "Content-Type:application/json" -X POST -d 

'{"email":"1191094115@qq.com"}' https://sandbox-

walletapi.onethingpcs.com/api/linktest/email_code

หากกล่องจดหมายยังไม่ได้ลงทะเบียน กล่องจดหมายจะส่งคืน:

{"code":0,"data":{},"msg":""}

ในเวลาเดียวกัน กล่องจดหมายจะได้รับอีเมลในเวลานี้:

นี่เป็นเพียงขั้นตอนแรกในการพัฒนา Thunderchain แน่นอน นอกจากการพิมพ์คำสั่งโดยตรงบนบรรทัดคำสั่งแล้ว คุณยังสามารถเรียก API ผ่านหน้าเว็บการเรียก API อย่างเป็นทางการได้อีกด้วย

ลิงค์เว็บไซต์:

https://thunderchain.docs.apiary.io/#reference/0

เปิดหน้าเพื่อดู:

คลิก รับรหัสยืนยันอีเมล เพื่อระบุ

ขึ้นอยู่กับความชอบของคุณว่าคุณใช้หน้าเว็บเพื่อเรียก API หรือเรียกผ่านบรรทัดคำสั่ง

คลิกปุ่มรับรหัสยืนยันอีเมล: หน้าจะเปลี่ยน


ในขณะนี้ คุณต้องกรอกเนื้อหาและตัวเลือกอื่นๆ พารามิเตอร์ URL ส่วนหัวสามารถละเว้นได้

หลังจากกรอกข้อมูลแล้วให้คลิกปุ่มโทรทรัพยากรและคำขอโพสต์จะถูกส่งสำเร็จ

ณ จุดนี้ คุณจะเห็นข้อมูลที่เกี่ยวข้องในหน้าต่างตอบกลับ:

ข้างต้นคุ้นเคยกับการดำเนินการเรียกพื้นฐานของ API เพื่ออธิบายกระบวนการทั้งหมดให้ง่ายขึ้น มาปรับใช้ผ่านหน้าเว็บอย่างสมบูรณ์และเรียกสัญญา แน่นอน แอปพลิเคชันจริงคือการปรับใช้สัญญาและการร้องขอโดยนักพัฒนาโดยใช้ไลบรารีเครือข่ายเพื่อทำการเรียก API ในซอฟต์แวร์ของตน

หลังจากได้รับรหัสยืนยันอีเมลแล้ว คุณสามารถลงทะเบียนที่อยู่อีเมลของคุณได้

ในหน้าเว็บก่อนหน้า ให้คลิกปุ่มลงทะเบียนที่ลงทะเบียนโดยที่อยู่อีเมลของผู้พัฒนา: คุณสามารถดูได้

 

ในตอนนี้ ให้กรอกอีเมลที่คุณลงทะเบียนไว้ก่อนหน้าและรหัสยืนยันที่ได้รับทางอีเมล

หลังจากลงทะเบียน คุณจะได้รับอีเมล:

นี่คือสองลายเซ็นสำหรับการดำเนินการต่าง ๆ ของสัญญา

ในการเรียกสัญญา คุณต้องจัดหาเชื้อเพลิงให้กับเครื่องเสมือนสัญญา ThunderChain ซึ่งเป็นค่าธรรมเนียมการทำธุรกรรม และคุณสามารถรับโทเค็นสภาพแวดล้อมการทดสอบผ่านอินเทอร์เฟซการเติมบัญชีทดสอบ (อินเทอร์เฟซนี้สามารถเรียกได้ 10 ครั้งต่อวันเท่านั้น) ที่นี่อาจมีเด็กที่ไม่เข้าใจตรรกะที่นักพัฒนาสัญญาและแพลตฟอร์มการพัฒนา ThunderChain ต้องเรียก นี่คือผังงานของเอกสารอย่างเป็นทางการ

 

รูปภาพด้านบนค่อนข้างชัดเจนและจำเป็นต้องชี้แจง:

ประการแรก กระเป๋า LinkToken ไม่สามารถแยกออกจากการเรียกสัญญาทั้งหมดได้ รหัสส่วนตัว LinkToken ที่บันทึกไว้ในกระเป๋าจะออกการทำธุรกรรมและที่อยู่ LinkToken จะถูกใช้เป็นผู้ส่งสัญญา

ดังนั้น ขั้นตอนแรกคือการเติมเงินในกระเป๋า LinkToken เพื่อทดสอบ อินเทอร์เฟซการทดสอบสำหรับการชาร์จคือ:

https://sandbox-walletapi.onethingpcs.com/api/linktest/recharge。

คำอธิบายพารามิเตอร์:


ในการเติมเงิน ก่อนอื่นคุณต้องมีที่อยู่ LinkToken และสร้างบัญชีผ่านกระเป๋า LinkToken

 


สร้างข้อมูล json บัญชีคือที่อยู่

ในขณะที่ลายเซ็นคือ:

md5(email=xxx&address=xxx&secret=xxx)

ที่นี่ xxx จะถูกแทนที่ด้วยข้อมูลส่วนบุคคล: ดังที่แสดงในรูปด้านล่าง ข้อมูลส่วนบุคคลถูกโมเสก วิธีนี้ทำให้สามารถรับลายเซ็นได้ และในขณะนี้ อินเทอร์เฟซ api สามารถเรียกใช้เพื่อเรียกอินเทอร์เฟซได้

 


สร้าง json ดังแสดงในรูป:

 

 

หนึ่งในผู้พัฒนาสามารถเรียกใช้อินเทอร์เฟซนี้ได้ 10 ครั้งต่อวัน หลังจากโทรแล้ว ให้รีเฟรช LinkToken Pocket:

 

ณ จุดนี้ 1 LinkToken มาแล้ว!

หลังจากที่คุณมี LinkToken แล้ว คุณสามารถปรับใช้สัญญาของคุณบน Thunder Chain เพื่อให้ปรับใช้สัญญาได้สำเร็จ คุณต้องเตรียมก๊าซพื้นฐาน

เช่นเดียวกับแผนผังลำดับงานด้านบน ในการปรับใช้สัญญา คุณต้องสร้างข้อมูล json ที่สอดคล้องกันก่อนแล้วส่งไปที่

https://sandbox-walletapi.onethingpcs.com/api/linktest/contract/deploy อินเทอร์เฟซ

คำอธิบายพารามิเตอร์:

หลังจากเตรียมสิ่งต่างๆ ข้างต้นแล้ว ก็สามารถพัฒนาและปรับใช้สัญญาได้ การพัฒนาสัญญาสามารถพัฒนาได้ด้วยทรัฟเฟิล


ใช้ทรัฟเฟิลเพื่อพัฒนาสัญญา Simplestorege โปรดทราบว่ารหัสไบต์ที่นี่เป็นเลขฐานสิบหก หากสัญญาอ้างอิงถึงสัญญา Library คุณต้องปรับใช้สัญญา Library บน Thunder Chain และเปลี่ยนฟิลด์ Library ที่อ้างอิงของสัญญาจริงเป็น ที่อยู่ห้องสมุด.. ด้วยวิธีนี้ bytecode เป็นไบนารีทั้งหมด และสามารถรับโฟลเดอร์ build ผ่านคำสั่งคอมไพล์ truffle ค้นหาข้อมูลฟิลด์ bytecode ในสัญญาที่ต้องเรียกใช้


สัญญาที่นี่คือ:

pragma solidity ^0.4.21;

 contract SimpleStorage {

     uint myVariable;

 

     function set(uint x) public {

         myVariable = x;

     }

 

     function get() constant public returns (uint) {

         return myVariable;

     }

 }

หลังจากสร้างป้ายแล้ว

 

รับ json:

{

    "email": "1191094115@qq.com",

    "bytecode": "0x608060405234801561001057600080fd5b5060df8061001f6000396000f3006080604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360fe47b114604e5780636d4ce63c146078575b600080fd5b348015605957600080fd5b5060766004803603810190808035906020019092919050505060a0565b005b348015608357600080fd5b50608a60aa565b6040518082815260200191505060405180910390f35b8060008190555050565b600080549050905600a165627a7a72305820101eb74d2d65698a7fd1e63666842673ffb013a500c768f84643fc6b896519430029",

    "params": "",

    "sign": "0d0734ca430c7b79d332d700b0b44cd9"

}


ได้คำตอบ:

 

หลังจากได้รับรหัส คุณสามารถใช้รหัสเพื่อค้นหาที่อยู่ของสัญญา

ข้อมูลที่ต้องการคือ:

วิธีการ: โพสต์
URL: /api/linktest/contract/address
BODY: JSON

คำอธิบายพารามิเตอร์:

ชื่อพารามิเตอร์

ประเภทพารามิเตอร์

อธิบาย

อธิบาย

Email

string

ใช่

อีเมลที่ใช้สำหรับการทดสอบส่วนใหญ่จะใช้เพื่อรับข้อความทดสอบ

Id

int

ใช่

รหัสที่ส่งคืนโดยการปรับใช้สัญญา

Sign

string

ใช่

ลายเซ็น md5(email=xxx&id=xxx&secret=xxx), xxx กรอกค่าที่แท้จริงของคำขอ


การตอบสนอง

ชื่อพารามิเตอร์

ประเภทพารามิเตอร์

อธิบาย

อธิบาย

Code

int

ใช่

รหัสข้อผิดพลาด 0: สำเร็จ ไม่ใช่ 0: ล้มเหลว

Msg

string

ใช่

ข้อความผิดพลาด

Data

object

เลขที่

ขอคืนข้อมูล


รับเครื่องหมาย:

 


ที่อยู่ตามสัญญาได้ในภายหลัง

 


หลังจากได้ที่อยู่สัญญาแล้วก็สามารถเรียกสัญญาได้

 

 

ตามผังงานด้านบน หากคุณต้องการโทรตามสัญญา คุณต้องได้รับ prepay_id ก่อนเพื่อใช้ LinkToken Pocket ในบุคคลที่สาม ต่อไปนี้คือขั้นตอนการรับ prepay_id จากบุคคลที่สาม แต่เป็นเพียง สาธิต.


สภาพแวดล้อมการทดสอบ:

https://sandbox-walletapi.onethingpcs.com/getPrepayId


วิธีการขอ: โพสต์

เมื่อได้รับ prepay_id คีย์ส่วนตัวที่ป้อนเป็นความลับที่ส่งโดยอีเมลก่อนหน้า:

 


ได้ป้ายแบบนี้

เนื่องจากพารามิเตอร์เหมือนกัน json ของแต่ละคำขอจึงเหมือนกัน และได้รับการตอบกลับในขณะนี้:


มีวิธีสัญญาสองวิธีวิธีหนึ่งคือวิธีคงที่และอีกวิธีหนึ่งคือวิธีที่ต้องใช้ก๊าซ คราวนี้เราเรียกเมธอด get() ของ Simplestore จากนั้นคุณต้องพบกับ:

วิธีการ: โพสต์
URL: /call
BODY: JSON

คำอธิบายพารามิเตอร์:

 

รายละเอียดพารามิเตอร์

รายละเอียดวัตถุ

วัตถุ - วัตถุการโทรธุรกรรม

โดยที่ data คือสตริงแฮชของฟังก์ชันการโทร

โดยมีวิธีการคำนวณดังนี้

สมมติว่าแถบฟังก์ชันเมธอด (fixed[2] x,bool y) โดยที่ x คือ 1 และ y คือ 2

ขณะนี้ ข้อมูลที่คำนวณได้คือ:

1. ดำเนินการ sha3 บนรหัส ascii ของ bar(fixed[2], bool) และใช้ 8 หลักแรกของการแสดงเลขฐานสิบหกของผลลัพธ์

2. แปลงค่า x เป็นตัวเลข uint32 และแปลงค่า y เป็นตัวเลข uint32

3. รวบรวมสตริงที่ได้รับในขั้นตอนที่ 1 และ 2 เพื่อรับข้อมูล

คุณสามารถรับค่า sha3-256 ของ get()

6d4ce63caa65600744ac797760560da39ebd16e8240936b51f53368ef9e0e01f

เอา 8 หลักแรก

เนื่องจากไม่มีพารามิเตอร์ คุณจึงสร้าง json ได้

 

ณ จุดนี้ผลลัพธ์คือ

 

เนื่องจากเมธอด get ได้รับ 0 เมื่อปรับใช้สัญญา จึงส่งคืน 0

หลังจากเรียกใช้เมธอดคงที่แล้ว คุณสามารถเรียกเมธอดที่ต้องใช้แก๊สได้

เรียกใช้ฟังก์ชัน set(uint x) ในครั้งนี้ เนื่องจากแม้ว่าจะเขียน uint ไว้ แต่ก็จะถูกแปลงเป็น uint256 ดังนั้น

ตามรูปแบบ json ในขณะนี้ ควรได้รับค่าแฮชของ sha3-256 ของ set(uint256) และควรใช้ 8 บิตแรก:

cccdda2c

 

ณ จุดนี้สามารถสร้าง json ได้

 

ในเวลาเดียวกันเราสร้าง x 256 เราคำนวณเลขฐานสิบหก 100 ของ 256 เป็นทศนิยมแล้วเติม 100 ถึง 32 บิตเพื่อรับ

0x00000000000000000000000000000100

ใส่กันอีกครั้ง

0x60fe47b100000000000000000000000000000100

สิ่งนี้เรียกว่าข้อมูล

นี่คือที่อยู่ คุณสามารถเลือกที่อยู่โทรกลับของ LinkToken Pocket ได้โดยตรง สำหรับ gas_limit ใน json สามารถรับได้ผ่านคำขอดังกล่าว แน่นอน หากสัญญาสำเร็จ

 

ผลตอบแทนเป็นเลขฐานสิบหก แค่แปลงเป็นเลขฐานสิบ

 

แปลงเป็นทศนิยม: 26477 แต่จริง ๆ แล้วสัญญาใช้ 41605 ดังนั้นจึงถูกต้องที่จะมีก๊าซขนาดใหญ่กว่า

สร้าง json


ได้คำตอบ:

 

ในขณะนี้ การเรียกกลับที่ได้รับคือ URL การเรียกกลับของ LinkToken Pocket แปลง URL เป็นรหัส QR

 

จากนั้นใช้ LinkToken Pocket เพื่อสแกน:

หากสำเร็จ:

 


หากสัญญาดำเนินการสำเร็จ

 

หากล้มเหลว: ที่นี่ฉันเรียกวิธีที่ผิด (สร้างข้อมูลผิด)

ถึงตอนนี้ กระบวนการเรียกสัญญาสิ้นสุดลงแล้ว

เราเปลี่ยนตัวแปรของสัญญาจาก 0 เป็น 256 ดังนั้นลองตรวจสอบผ่านเมธอด get กันตอนนี้

ด้วยวิธีคงที่ก่อนหน้านี้ การตอบสนองในเวลานี้คือ: ps วิธีคงที่สามารถรันได้ด้วยค่าธรรมเนียมการทำธุรกรรมผ่านเครื่องเสมือน แต่ไม่จำเป็น

แปลงเลขฐานสิบหกเป็นทศนิยม มันคือ 256!

ข้างต้นเป็นประสบการณ์ครั้งแรกของกระบวนการทำสัญญาการใช้งาน Thunder Chain ฉันหวังว่ามันจะสามารถช่วยรองเท้าเด็กได้บ้างในอนาคต ^.^ นักเรียนที่รัก

 


ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
ค้นหา
สารบัญบทความ
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android