Hàng khô | Thuyết minh siêu chi tiết, lần đầu trải nghiệm ứng dụng triển khai Thunderchain
星球君的朋友们
2018-10-17 09:41
本文约4295字,阅读全文需要约17分钟
Đây là lần đầu tiên tôi biết đến Thunderchain và tôi nghĩ Thunderchain là một lựa chọn tốt. Vì vậy, tôi nghĩ rằng nó có thể được phát triển và áp dụng trên nó, Thunderchain cung cấp môi trường hộ

Đây là lần đầu tiên tôi biết đến Thunderchain và tôi nghĩ Thunderchain là một lựa chọn tốt. Vì vậy, tôi nghĩ rằng nó có thể được phát triển và áp dụng trên nó, Thunderchain cung cấp môi trường hộp cát để thử nghiệm và các tài liệu chính thức được viết chi tiết hơn. Nhưng tôi đã thực hiện việc triển khai có liên quan trong môi trường hộp cát này, vì vậy tôi sẽ cung cấp một hướng dẫn để gọi điện.

Để sử dụng môi trường thử nghiệm, bạn phải chuẩn bị môi trường thử nghiệm, chẳng hạn như tài khoản nhà phát triển cho thử nghiệm và ví LinkToken cho thử nghiệm. Tài liệu chính thức cung cấp nhiều API để đáp ứng nhu cầu của nhà phát triển. Bước đầu tiên để phát triển ứng dụng hợp đồng của riêng bạn bằng ThunderChain là đăng ký email của nhà phát triển.


Nếu các nhà phát triển muốn ứng dụng của họ sử dụng dịch vụ hợp đồng của nền tảng mở ThunderChain, họ chỉ cần gọi url xây dựng và giao diện có liên quan có thể được xem qua tài liệu chính thức. Ví dụ: lệnh curl dòng lệnh có thể được sử dụng cho email đăng ký và địa chỉ email json có thể được điền vào bởi chính bạn. Địa chỉ email của bạn sẽ thực hiện:

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

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

walletapi.onethingpcs.com/api/linktest/email_code

Nếu hộp thư chưa được đăng ký, nó sẽ trả về:

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

Đồng thời lúc này hộp thư sẽ nhận được email:

Đây chỉ là bước đầu tiên trong quá trình phát triển Thunderchain. Tất nhiên, ngoài việc gõ lệnh trực tiếp trên dòng lệnh, bạn cũng có thể gọi api thông qua một trang web gọi api chính thức.

Địa chỉ website:

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

Mở trang để xem:

Nhấp vào Nhận mã xác minh email để cung cấp.

Nó phụ thuộc vào sở thích của bạn cho dù bạn sử dụng trang web để gọi api hay gọi nó thông qua dòng lệnh.

Nhấp vào nút Nhận mã xác minh email: trang sẽ thay đổi.


Lúc này bạn cần điền vào phần Body, còn các tùy chọn khác URL Parameters, Headers có thể bỏ qua

Sau khi điền xong bấm vào nút gọi Tài nguyên, yêu cầu đăng bài sẽ được gửi thành công

Tại thời điểm này, bạn sẽ thấy thông tin liên quan trong cửa sổ phản hồi:

Phần trên đã làm quen với hoạt động gọi cơ bản của API, để mô tả toàn bộ quá trình đơn giản hơn, hãy triển khai nó hoàn toàn thông qua trang web và gọi một hợp đồng. Tất nhiên, ứng dụng thực tế là triển khai triển khai hợp đồng và yêu cầu của các nhà phát triển sử dụng thư viện mạng để thực hiện các cuộc gọi api trong phần mềm của họ.

Sau khi nhận được mã xác minh email, bạn có thể đăng ký địa chỉ email của mình.

Trên trang web trước đó, hãy nhấp vào nút đăng ký được đăng ký bởi địa chỉ email của nhà phát triển: bạn có thể xem

 

Lúc này, bạn điền email đã đăng ký trước đó và mã xác minh nhận được trong email.

Sau khi đăng ký, bạn có thể nhận được email:

Đây là hai chữ ký cho các hoạt động khác nhau của hợp đồng.

Để gọi hợp đồng, bạn phải cung cấp nhiên liệu cho máy ảo hợp đồng ThunderChain, đó là phí giao dịch và bạn có thể nhận được một số mã thông báo môi trường thử nghiệm thông qua giao diện nạp tiền tài khoản thử nghiệm (giao diện này chỉ có thể được gọi 10 lần một ngày). Ở đây có thể có những đứa trẻ không hiểu logic mà các nhà phát triển hợp đồng và nền tảng phát triển ThunderChain phải gọi.Đây là sơ đồ luồng của tài liệu chính thức.

 

Bức tranh trên tương đối rõ ràng và cần được làm rõ:

Trước hết, túi LinkToken không thể tách rời khỏi toàn bộ cuộc gọi hợp đồng. Khóa riêng LinkToken được lưu trong túi sẽ phát hành giao dịch và địa chỉ LinkToken của nó sẽ được sử dụng làm người gửi hợp đồng.

Do đó, bước đầu tiên là nạp tiền vào túi LinkToken để thử nghiệm.Giao diện thử nghiệm để nạp tiền là:

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

Mô tả về Thông Số:


Để nạp tiền, trước tiên bạn phải có địa chỉ LinkToken và tạo tài khoản thông qua túi LinkToken.

 


Xây dựng dữ liệu json, tài khoản là địa chỉ

trong khi chữ ký là:

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

Ở đây xxx được thay bằng thông tin cá nhân: như hình bên dưới, thông tin cá nhân đã được ghép. Thông qua đó, có thể lấy được chữ ký và tại thời điểm này, giao diện api có thể được gọi để thực hiện cuộc gọi giao diện

 


Xây dựng json như trong hình:

 

 

Một trong những nhà phát triển chỉ có thể gọi giao diện này 10 lần một ngày, sau khi gọi, hãy làm mới LinkToken Pocket:

 

Lúc này 1 LinkToken đã về!

Sau khi có LinkToken, bạn có thể triển khai hợp đồng của mình trên Thunder Chain. Để triển khai thành công hợp đồng, bạn cần cung cấp gas cơ bản.

Cũng giống như lưu đồ bên trên, để triển khai hợp đồng, trước tiên bạn phải xây dựng dữ liệu json tương ứng và gửi tới

https://sandbox-walletapi.onethingpcs.com/api/linktest/contract/deploy giao diện

Mô tả về Thông Số:

Sau khi chuẩn bị những điều trên, hợp đồng có thể được phát triển và triển khai. Phát triển hợp đồng có thể được phát triển với nấm cục.


Sử dụng nấm cục để phát triển hợp đồng Simplestore, lưu ý rằng mã byte ở đây là số thập lục phân, nếu hợp đồng tham chiếu hợp đồng Thư viện, bạn cần triển khai hợp đồng Thư viện trên chuỗi Thunder và thay đổi trường Thư viện được tham chiếu của hợp đồng thực thành Địa chỉ thư viện. Theo cách này, tất cả mã byte đều ở dạng nhị phân và thư mục bản dựng có thể được lấy thông qua lệnh biên dịch truffle. Tìm thông tin trường mã byte trong hợp đồng cần được gọi


Hợp đồng ở đây là:

pragma solidity ^0.4.21;

 contract SimpleStorage {

     uint myVariable;

 

     function set(uint x) public {

         myVariable = x;

     }

 

     function get() constant public returns (uint) {

         return myVariable;

     }

 }

Sau khi xây dựng bảng hiệu

 

lấy json:

{

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

    "bytecode": "0x608060405234801561001057600080fd5b5060df8061001f6000396000f3006080604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360fe47b114604e5780636d4ce63c146078575b600080fd5b348015605957600080fd5b5060766004803603810190808035906020019092919050505060a0565b005b348015608357600080fd5b50608a60aa565b6040518082815260200191505060405180910390f35b8060008190555050565b600080549050905600a165627a7a72305820101eb74d2d65698a7fd1e63666842673ffb013a500c768f84643fc6b896519430029",

    "params": "",

    "sign": "0d0734ca430c7b79d332d700b0b44cd9"

}


đã có câu trả lời:

 

Sau khi có id, bạn có thể sử dụng id để truy vấn địa chỉ của hợp đồng.

Thông tin yêu cầu của nó là:

Phương thức: ĐĂNG
URL: /api/linktest/contract/address
BODY: JSON

Mô tả về Thông Số:

tên tham số

Loại thông số

Minh họa

Minh họa

Email

string

Đúng

Email dùng để kiểm tra chủ yếu dùng để nhận tin nhắn kiểm tra

Id

int

Đúng

Id được trả về bằng cách triển khai hợp đồng

Sign

string

Đúng

Chữ ký md5(email=xxx&id=xxx&secret=xxx), xxx điền vào giá trị thực của yêu cầu


phản ứng

tên tham số

Loại thông số

Minh họa

Minh họa

Code

int

Đúng

Mã lỗi, 0: thành công, khác 0: thất bại

Msg

string

Đúng

thông báo lỗi

Data

object

KHÔNG

yêu cầu trả về dữ liệu


Nhận ký hiệu:

 


Địa chỉ hợp đồng có thể được lấy sau

 


Sau khi nhận được địa chỉ hợp đồng, hợp đồng có thể được gọi.

 

 

Theo sơ đồ quy trình ở trên, nếu bạn muốn thực hiện lệnh gọi hợp đồng, trước tiên bạn phải lấy prepay_id để sử dụng LinkToken Pocket ở bên thứ ba. Đây là quy trình để bên thứ ba lấy prepay_id, nhưng đó là chỉ là một cuộc biểu tình.


môi trường thử nghiệm:

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


Phương thức yêu cầu: gửi

Khi nhận được prepay_id, khóa cá nhân đã nhập là khóa bí mật được gửi bởi email trước đó:

 


nhận được dấu hiệu như thế này

Vì các tham số giống nhau nên json của mỗi yêu cầu cũng giống nhau và phản hồi thu được tại thời điểm này:


Có hai phương thức hợp đồng, một là phương thức không đổi và hai là phương thức cần gas. Lần này chúng ta gọi phương thức get() của Simplestore. Sau đó, bạn cần phải đáp ứng:

Phương thức: ĐĂNG
URL: /call
BODY: JSON

Mô tả về Thông Số:

 

thông số chi tiết

chi tiết đối tượng

đối tượng - đối tượng cuộc gọi giao dịch

Trường hợp dữ liệu là một chuỗi băm của hàm gọi

Phương pháp tính toán của nó như sau;

Giả sử hàm phương thức bar(fixed[2] x,bool y), trong đó x là 1 và y là 2

Tại thời điểm này, dữ liệu tính toán là:

1. Thực hiện sha3 trên mã ascii của bar(fixed[2], bool) và lấy 8 chữ số đầu tiên của biểu diễn thập lục phân của kết quả

2. Chuyển đổi giá trị của x thành số uint32 và chuyển đổi giá trị của y thành số uint32

3. Ghép các chuỗi có được ở bước 1 và bước 2 lại với nhau để lấy dữ liệu

Bạn có thể lấy giá trị sha3-256 của get()

6d4ce63caa65600744ac797760560da39ebd16e8240936b51f53368ef9e0e01f

lấy 8 số đầu

Vì không có tham số nên bạn có thể build json

 

Lúc này kết quả là

 

Bởi vì phương thức get nhận 0 khi hợp đồng được triển khai, nên nó trả về 0.

Sau khi gọi phương thức không đổi, bạn có thể gọi phương thức cần gas

Gọi hàm set(uint x) lần này, vì mặc dù uint được viết nhưng nó sẽ được chuyển đổi thành uint256, vì vậy

Theo định dạng json, tại thời điểm này, cần lấy giá trị băm của sha3-256 của set(uint256) và lấy 8 bit đầu tiên:

cccdda2c

 

Tại thời điểm này, json có thể được xây dựng.

 

Đồng thời, chúng tôi tạo x 256, chúng tôi tính toán hệ thập lục phân 100 của 256 ở dạng thập phân, sau đó điền từ 100 đến 32 bit để có được

0x00000000000000000000000000000100

đặt lại với nhau

0x60fe47b100000000000000000000000000000100

Đây được gọi là dữ liệu.

Đây là địa chỉ, bạn có thể chọn trực tiếp địa chỉ gọi lại của LinkToken Pocket. Đối với gas_limit trong json, nó có thể nhận được thông qua yêu cầu như vậy, tất nhiên, nếu hợp đồng thành công, gas có thể càng lớn càng tốt.

 

Trả về là một số thập lục phân, chỉ cần chuyển đổi nó thành số thập phân.

 

Quy đổi sang thập phân: 26477, nhưng thực tế hợp đồng dùng 41605 nên gas lớn hơn là đúng

xây dựng json


đã có câu trả lời:

 

Tại thời điểm này, cuộc gọi lại thu được là url gọi lại của LinkToken Pocket. Chuyển đổi url sang mã QR.

 

Sau đó sử dụng LinkToken Pocket để quét:

Nếu thành công:

 


Nếu hợp đồng thực hiện thành công

 

Nếu thất bại: ở đây tôi gọi sai phương thức (xây dựng dữ liệu sai)

Đến nay, quá trình gọi thầu đã kết thúc.

Chúng ta đã thay đổi biến của hợp đồng từ 0 thành 256, vì vậy hãy kiểm tra nó thông qua phương thức get ngay bây giờ.

Thông qua phương pháp hằng số trước đó, phản hồi tại thời điểm này là: ps Phương thức hằng số cũng có thể được chạy với phí giao dịch thông qua máy ảo, nhưng điều này là không cần thiết.

Chuyển đổi thập lục phân thành thập phân, nó là 256!

Trên đây là kinh nghiệm đầu tiên về quy trình triển khai hợp đồng Thunder Chain, tôi hy vọng nó có thể giúp ích phần nào cho giày trẻ em trong tương lai ^.^ Các em học sinh thân mến.

 


星球君的朋友们
作者文库