Skip to main content

Bắt đầu với Dandelion APIs

Dandelion hiện cung cấp 2 con đường khác nhau để bắt đầu:

  • Đối với các nhà phát triển: A hosted instance của hầu hết mọi API Cardano có sẵn được Gimbalabscung cấp dưới dạng dịch vụ cộng đồng miễn phí để bắt đầu xây dựng ngay lập tức.
  • Đối với SPOs/DevOps/sysadmins: An OpenSource project để triển khai dịch vụ cộng đồng sử dụng Kubernetes.

Cho nhà phát triển

Bắt đầu tạo mẫu ngay lập tức dự án của bạn bằng cách chọn API phù hợp hơn với nhu cầu của bạn.

Tất cả chúng đều được cung cấp theo các dự án nguồn mở được phát triển bởi IOG, Emurgo và các nhà phát triển khác từ cộng đồng, vì vậy bạn sẽ không cần phải thay đổi bất cứ điều gì trong trường hợp bạn quyết định tự mình lưu trữ chúng.

Đây là các liên kết đến kho lưu trữ github và mô tả ngắn gọn về chúng:

  • hasura/graphql-api: sử dụng API GraphQL này để thu thập thông tin tổng hợp từ blockchain và gửi các giao dịch đã ký đến blockchain
  • KtorZ/ogmios-api: sử dụng API JSON-WSP (websocket) này để thu thập thông tin blockchain trực tiếp trực tiếp từ một phiên bản cardano-node

    -cardano-db-sync/postgrest-api: sử dụng API REST này để thực hiện các truy vấn SQL nhằm thu thập thông tin trực tiếp từ cơ sở dữ liệu của cardano-db-sync.

  • rosetta-api: sử dụng API này để tích hợp ứng dụng của bạn với nhiều blockchain theo cách đơn giản hơn, nhanh hơn và đáng tin cậy hơn.

Cardano GraphQL

img

Các liên kết hữu ích

  • Link liên kết đến thông tin điểm cuối của Gimbalabs

  • Link liên kết đến tài liệu chính thức của dự án

  • Link vào bộ sưu tập chính thức của các truy vấn mẫu. Bạn có thể chạy trực tiếp từ GraphQL playground

Các ví dụ sử dụng:

# testnet
curl -H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-binary \
'{"query":"query cardanoDbSyncProgress {\n cardanoDbMeta {\n initialized\n syncPercentage\n }\n}\n"}' \
https://graphql-api.testnet.dandelion.link

Ví dụ hiện thị ra:

{"data":{"cardanoDbMeta":{"initialized":true,"syncPercentage":100}}}

Cardano Explorer

img

Các liên kết hữu ích:

  • Link liên kết đến thông tin điểm cuối của Gimbalabs
  • Link Tài liệu của chính thức của dự án.
  • Link đến tài liệu chính thức của dự án

Ví dụ hữu dụng:

# testnet
curl -s https://explorer-api.testnet.dandelion.link/api/txs/last
# mainnet
curl -s https://explorer-api.mainnet.dandelion.link/api/txs/last

Ví dụ đâu ra (REDACTED):

{
"Right": [
{
"cteId": "12703a0f201c9596d4fc256924f98e38d33dc23c4be1c7c3bc9bbc373ee3dbdf",
"cteTimeIssued": 1621292369,
"cteAmount": {
"getCoin": "541898740"
}
},
{
"cteId": "f7f0be9988551b5179b143444f67215a06ef9794f3ed9e6f58a1b067db37f0a1",
"cteTimeIssued": 1621292297,
"cteAmount": {
"getCoin": "1019242"
}
},
...
]
}

Cardano Submit

img

Link sử dụng:

  • Link liên kết đến thông tin điểm cuối của Gimbalabs
  • Link đến tài liệu chính thức của dự án

Các ví dụ sử dụng giả sử bạn có một tệp application/cbor chứa một giao dịch đã ký ( ví dụ: từ cardano-cli hoặc bất kỳ thư viện nào khác) nằm tại /tmp/cbor-tx:

curl -X POST \
--header "Content-Type: application/cbor" \
--data-binary @/tmp/cbor-tx \
https://submit-api.testnet.dandelion.link/api/submit/tx

Ví dụ thông tin đầu ra (a transaction id):

92bcd06b25dfbd89b578d536b4d3b7dd269b7c2aa206ed518012cffe0444d67f

Cardano Rosetta

img

Các link hữu ích:

  • Link liên kết đến thông tin điểm cuối của Gimbalabs
  • Link đến tài liệu chính thức của dự án

Ví dụ hữu ích:

curl -s -X POST \
-H 'Content-Type: application/json' \
--data '{"network_identifier":{"blockchain":"cardano","network":"testnet"},"block_identifier":{"index":100}}' \
https://rosetta-api.testnet.dandelion.link/block

Ví dụ đầu ra:

{
"block": {
"block_identifier": {
"index": 100,
"hash": "4c81fe7ddb7ab93a1973d674f1920bb1be980efdb819ea0a92d25706e72809fc"
},
"parent_block_identifier": {
"index": 99,
"hash": "e8b65f34c3b562a996b6bf6a9109e279536ae7efbc714ae0526bd222e7288eb4"
},
"timestamp": 1564022216000,
"transactions": [],
"metadata": {
"transactionsCount": 0,
"createdBy": "ByronGenesis-0df4205606dcb8ad",
"size": 668,
"epochNo": 0,
"slotNo": 1130
}
}
}

Ogmios

img

Các link hữu ích:

  • Link liên kết đến thông tin điểm cuối của Gimbalabs
  • Link đến tài liệu chính thức của dự án

Ví dụ hữu ích:

echo '{ "type": "jsonwsp/request", "version": "1.0", "servicename": "ogmios", "methodname": "RequestNext", "args": {} }' \
| websocat --text -1 - wss://ogmios-api.testnet.dandelion.link

Ví dụ đầu ra:

{
"type": "jsonwsp/response",
"version": "1.0",
"servicename": "ogmios",
"methodname": "RequestNext",
"result": {
"RollBackward": {
"point": "origin",
"tip": {
"slot": 26925169,
"hash": "000a47936fed9bd76cfb52abcd9ab3172ba9118cff9b56767087544f295daba3",
"blockNo": 2591103
}
}
},
"reflection": null
}

PostgREST

img

Useful links:

  • Link liên kết đến thông tin điểm cuối của Gimbalabs và tài liệu chính thức.
  • Link tới cardano-db-sync tài liệu chinh thức

Ví dụ hữu ích:

# query available metadatums
curl -s "https://postgrest-api.mainnet.dandelion.link/rpc/get_metadatum"
# query metadatum 20201210
curl -d metadatum=20201210 -s "https://postgrest-api.mainnet.dandelion.link/rpc/get_metadata" | jq .
# query metadatum 42 for epoch 234-235 and limit results to 1
curl -s -d metadatum=42 -d epochs="{234,235}" "https://postgrest-api.mainnet.dandelion.link/rpc/get_metadata?limit=1"
# query metadata entry number 15
curl -s "https://postgrest-api.mainnet.dandelion.link/tx_metadata?id=eq.15"
# query pool metadata whose URL contains "repsistance"
curl -s "https://postgrest-api.mainnet.dandelion.link/pool_meta_data?url=like.*repsistance*"
# query metadata entries for SPOCRA proposalId "80064c28-1b03-4f1c-abf0-ca8c5a98d5b9"
curl -s "https://postgrest-api.mainnet.dandelion.link/tx_metadata?json->>ProposalId=eq.80064c28-1b03-4f1c-abf0-ca8c5a98d5b9"
# query metadata entries for the whole SPOCRA network
curl -s "https://postgrest-api.mainnet.dandelion.link/tx_metadata?json->>NetworkId=eq.SPOCRA"

Triển khai Dandelion của riêng bạn

Nếu bạn đã cài đặt Docker, bạn gần như đã hoàn tất việc sử dụng Dandelion trong môi trường phát triển cục bộ của mình. Vui lòng tham khảo tài liệu chính thức the official documentation để làm như vậy và đừng ngần ngại yêu cầu hỗ trợ trong kênh Discord chuyên dụng của chúng tôiDiscord channel, chúng tôi biết hệ điều hành, mạng và nhà cung cấp đám mây có thể khác nhau rất nhiều và đưa ra các vấn đề ngẫu nhiên!