From 847e0a18992fd18d892b0ea187e72d47c3699601 Mon Sep 17 00:00:00 2001 From: Ryan Waits Date: Fri, 1 Nov 2024 10:57:40 -0500 Subject: [PATCH] remove unused docs content --- content/faqs.md | 39 -- content/feature-guides/gaia-storage.md | 15 - content/feature-guides/microblocks.md | 38 -- content/feature-guides/nonce-handling.md | 29 - content/feature-guides/openapi-spec.md | 89 --- content/feature-guides/pagination.md | 52 -- content/feature-guides/rate-limiting.md | 22 - content/feature-guides/requesting-proofs.md | 11 - content/feature-guides/rosetta-support.md | 59 -- content/feature-guides/search-endpoint.md | 9 - content/feature-guides/transactions.md | 607 ------------------ content/feature-guides/use-clarity-values.md | 54 -- .../use-stacks-blockchain-api.md | 33 - content/getting-started.md | 26 - .../how-to-deploy-service-dependencies.md | 13 - content/how-to-guides/how-to-handle-errors.md | 29 - .../how-to-install-stacks-cli.md | 158 ----- .../how-to-query-stacks2.0-blockchain.md | 395 ------------ content/how-to-guides/how-to-run-api-node.md | 317 --------- .../how-to-guides/how-to-run-mainnet-node.md | 174 ----- ...how-to-run-stacks-blockchain-api-docker.md | 332 ---------- .../how-to-guides/how-to-run-testnet-node.md | 145 ----- .../how-to-upgrade-stacks-blockchain-api.md | 80 --- content/images/api-architecture.png | Bin 327945 -> 0 bytes content/overview.md | 58 -- content/troubleshooting.md | 32 - 26 files changed, 2816 deletions(-) delete mode 100644 content/faqs.md delete mode 100644 content/feature-guides/gaia-storage.md delete mode 100644 content/feature-guides/microblocks.md delete mode 100644 content/feature-guides/nonce-handling.md delete mode 100644 content/feature-guides/openapi-spec.md delete mode 100644 content/feature-guides/pagination.md delete mode 100644 content/feature-guides/rate-limiting.md delete mode 100644 content/feature-guides/requesting-proofs.md delete mode 100644 content/feature-guides/rosetta-support.md delete mode 100644 content/feature-guides/search-endpoint.md delete mode 100644 content/feature-guides/transactions.md delete mode 100644 content/feature-guides/use-clarity-values.md delete mode 100644 content/feature-guides/use-stacks-blockchain-api.md delete mode 100644 content/getting-started.md delete mode 100644 content/how-to-guides/how-to-deploy-service-dependencies.md delete mode 100644 content/how-to-guides/how-to-handle-errors.md delete mode 100644 content/how-to-guides/how-to-install-stacks-cli.md delete mode 100644 content/how-to-guides/how-to-query-stacks2.0-blockchain.md delete mode 100644 content/how-to-guides/how-to-run-api-node.md delete mode 100644 content/how-to-guides/how-to-run-mainnet-node.md delete mode 100644 content/how-to-guides/how-to-run-stacks-blockchain-api-docker.md delete mode 100644 content/how-to-guides/how-to-run-testnet-node.md delete mode 100644 content/how-to-guides/how-to-upgrade-stacks-blockchain-api.md delete mode 100644 content/images/api-architecture.png delete mode 100644 content/overview.md delete mode 100644 content/troubleshooting.md diff --git a/content/faqs.md b/content/faqs.md deleted file mode 100644 index 7d01cc73e6..0000000000 --- a/content/faqs.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -Title: FAQs ---- - -# FAQs - -#### **I am attempting to receive the status from a local Stacks Blockchain node API and present to a user how close it is to being synced. I can retrieve the current height of the local node (`/v2/info`). Is there any way for me to retrieve the real current height from an API node that is not completely synced? I want to avoid going directly to the centrally-hosted node.** - -Although the Stacks Blockchain API does not yet know when it is in sync mode vs normal "chain follower" mode, you may check the current height of the API by viewing the status endpoint (e.g. https://api.mainnet.hiro.so/extended/v1/status). - -You may also review the following issues: - -- [Feat/health check endpoint stacks-network/stacks-blockchain#2768](https://github.com/stacks-network/stacks-blockchain/pull/2768) -- [Update /extended/v1/status to "syncing" if more than X blocks are missing](https://github.com/hirosystems/stacks-blockchain-api/issues/1055) stacks-blockchain-api#1055 - -#### **[/extended/v1/tokens/nft/holdings/?limit=200&principal=SP3EQ7FQ8TFXB792P7VAGRXER0YNFMGM1Y8RS69RC](https://api.mainnet.hiro.so/extended/v1/tokens/nft/holdings/?limit=200&principal=SP3EQ7FQ8TFXB792P7VAGRXER0YNFMGM1Y8RS69RC) is only reporting 49 NFTs; however, the marketplace shows it has 133 NFTs: 92 NFTs for sale, and 41 NFTs are unlisted,. Why is `/holdings/` not returning all results?** - -Many marketplace contracts are custodial; meaning, you do not actually own the NFT, but the marketplace contract does (but it has been marked to your address). This is why the NFT does not appear in `/holdings`. - -#### **Are there any limits on the number of times I can continuously call the Stacks Blockchain API?** - -The Stacks Blockchain API has a rate limit set to ensure all users can make queries to the API. If you exceed this rate limit, you will receive a 429 error. To avoid receiving this error, you may choose to run your own node and the Stacks Blockchain API, or use websockets. - -The current rate limts for Stacks Blockchain API are listed in [this](feature-guides/rate-limiting.md) table. - -#### **I noticed that the Stacks Blockchain API becomes "stuck" when it is at a certain block height. What can I do to fix this issue?** - -If the Stacks Blockchain API becomes "stuck" and does not return a 200 status code from a node block message, causing the node to resend the same message over and over, simply try restarting the full API stack (postgres, API, stacks-blockchain node) with a known-good backup. - -You may also file an issue in the [Stacks Blockchain API GitHub repository](https://github.com/hirosystems/stacks-blockchain-api). - -#### **I am receiving the following message when attempting to process NFT metadata: "NFT metadata processing is not enabled on this server." Is this expected behavior on mainnet?** - -You received this error because the NFT metadata was not standardized at the time the API tried to implement support. If you receive this error, please see the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service) repository for instructions on how to implement NFT metadata processing. - - -#### **Is the `block_height` referred to Stacks or bitcoin block heights?** - -The stacks block height is referred to as `block_height` while the bitcoin block height is prefixed with the keyword `burnchain`. diff --git a/content/feature-guides/gaia-storage.md b/content/feature-guides/gaia-storage.md deleted file mode 100644 index 3b8c62c691..0000000000 --- a/content/feature-guides/gaia-storage.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Storing data with Gaia ---- - -# Gaia Storage - -The Gaia storage system allows you to store private app data off the blockchain and still access it securely -with Stacks applications. Where possible, apps should only store critical transactional metadata directly on -the Stacks blockchain, while keeping app and user data in the Gaia storage system. For more information about -the Gaia storage system, see the [Gaia protocol reference](https://docs.stacks.co/build-apps/references/gaia). - -A [Gaia hub](https://docs.stacks.co/build-apps/references/gaia#user-control-or-how-is-gaia-decentralized) consists of a service and a storage -resource, generally hosted on the same cloud compute provider. The hub service requires an authentication token from a -storage requester, and writes key-value pairs to the associated storage resource. Individual storage users can choose their Gaia -hub provider. The linked documentation provides an overview of how to set up and operate a Gaia hub. diff --git a/content/feature-guides/microblocks.md b/content/feature-guides/microblocks.md deleted file mode 100644 index c72ddece98..0000000000 --- a/content/feature-guides/microblocks.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -Title: Microblocks ---- - -# Microblocks - -> **_NOTE:_** -> Please review the Microblocks API documentation carefully to ensure you are up-to-date on the latest implementation details for microblocks. - -The Stacks Blockchain API enables you to query the most recently streamed microblocks when you run the following command: - -```bash -# for mainnet, remove `.testnet` -curl 'https://api.testnet.hiro.so/extended/v1/microblock' -``` - -```json -{ - "limit": 20, - "offset": 0, - "total": 8766, - "results": [ - { - "canonical": true, - "microblock_canonical": true, - "microblock_hash": "0xe6897aab881208185e3fb6ba58d9d9e35c43c68f13fbb892b20cebd39ac69567", - "microblock_sequence": 0, - "microblock_parent_hash": "0xe0d1e8d216a77526ae2ce40294fc77038798a179a6532bb8980d3c2183f58de6", - "parent_index_block_hash": "0x178cd9a37bf38f6b85d9f18e65588e60782753b1463ae080fb9865938b0898ea", - "block_height": 14461, - "parent_block_height": 14460, - "parent_block_hash": "0xe0d1e8d216a77526ae2ce40294fc77038798a179a6532bb8980d3c2183f58de6", - "block_hash": "0x17ceb3da5f36aab351d6b14f5aa77f85bb6b800b954b2f24c564579f80116d99", - "txs": ["0x0622e096dec7e2f6e8f7d95f732e04d238b7381aea8d0aecffae026c53e73e05"] - } - ] -} -``` diff --git a/content/feature-guides/nonce-handling.md b/content/feature-guides/nonce-handling.md deleted file mode 100644 index 7173078f85..0000000000 --- a/content/feature-guides/nonce-handling.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -Title: Nonce Handling ---- - -# Nonce handling - -In order to prevent "stuck" transactions, you must track the next available nonce for principals issuing transactions. The -Stacks Blockchain API provides an endpoint to make nonce handling simpler when using the following command: - -```bash -# for mainnet, remove `.testnet` -# replace with your STX address -curl 'https://api.testnet.hiro.so/extended/v1/address//nonces' -``` - -```json -{ - "last_executed_tx_nonce": 5893, - "last_mempool_tx_nonce": null, - "possible_next_nonce": 5894, - "detected_missing_nonces": [] -} -``` - -The `possible_next_nonce` property is the predicted nonce required for subsequent transactions, which is derived from inspecting the latest transaction nonces from both anchor blocks, microblocks, and mempool. - -The `detected_missing_nonces` property finds any non-contiguous nonces after inspecting transactions from anchor blocks, microblocks, and the mempool. For example, if the latest anchor/microblock transaction nonce for an account is 5, but the next nonce in the mempool is 7, then it indicates that something likely went wrong with transaction with nonce 6 (either it was not created or broadcasted correctly by a client, or it was dropped for whatever reason). This is a strong indication that the mempool transaction with nonce 7 will never be mined since the previous nonce is missing. - -Clients that continue to broadcast transactions with the `possible_next_nonce` property of 8, then 9, then 10, will likely result in all of their pending/mempool transactions never going through. diff --git a/content/feature-guides/openapi-spec.md b/content/feature-guides/openapi-spec.md deleted file mode 100644 index 7e7c780428..0000000000 --- a/content/feature-guides/openapi-spec.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -Title: Open API Spec ---- - -# OpenAPI Spec - -The Stacks API was designed using the [OpenAPI specification](https://swagger.io/specification/), making it compatible with a variety of developer tools. - -The [OpenAPI specification file for Stacks](https://github.com/hirosystems/stacks-blockchain-api/blob/master/docs/openapi.yaml) is used to generate the TypeScript client library. You can use the specification file to generate client libraries for other programming languages using the [openapi-generator tool](https://github.com/OpenAPITools/openapi-generator) - -## TypeScript client library - -A Typescript client library is available for use of the Stacks API. The client library enables type-safe REST and WebSocket communication with the Stacks API endpoints. - -The client is made up of three components: - -1. Generated HTTP API client -2. Typescript definitions for [Clarity values](https://docs.stacks.co/docs/write-smart-contracts/values) -3. WebSocket client - -The following sections demonstrate common usages of the TypeScript API client. - -### HTTP API client sample - -The Typescript client library requires you to specify the underlying HTTP request library to handle HTTP communication. The example below uses the universal fetch API [`cross-fetch`](https://github.com/lquixada/cross-fetch): - -```js -import fetch from 'cross-fetch'; -import { Configuration, AccountsApi } from '@stacks/blockchain-api-client'; -(async () => { - const apiConfig = new Configuration({ - fetchApi: fetch, - // for mainnet, replace `testnet` with `mainnet` - basePath: 'https://api.testnet.hiro.so', // defaults to http://localhost:3999 - }); - // initiate the /accounts API with the basepath and fetch library - const accountsApi = new AccountsApi(apiConfig); - // get transactions for a specific account - const txs = await accountsApi.getAccountTransactions({ - principal: 'ST000000000000000000002AMW42H', - }); - console.log(txs); -})().catch(console.error); -``` - -### TypeScript sample - -The following sample shows how generated [TypeScript models](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client/src/generated/models) can be used for type-safety: - -```ts -import fetch from 'cross-fetch'; -import { - Configuration, - AccountsApi, - AccountsApiInterface, - AddressBalanceResponse, - AddressBalanceResponseStx, -} from '@stacks/blockchain-api-client'; -(async () => { - const apiConfig: Configuration = new Configuration({ - fetchApi: fetch, - // for mainnet, replace `testnet` with `mainnet` - basePath: 'https://api.testnet.hiro.so', // defaults to http://localhost:3999 - }); - const principal: string = 'ST000000000000000000002AMW42H'; - // initiate the /accounts API with the basepath and fetch library - const accountsApi: AccountsApiInterface = new AccountsApi(apiConfig); - // get balance for a specific account - const balance: AddressBalanceResponse = await accountsApi.getAccountBalance({ - principal, - }); - // get STX balance details - const stxAmount: AddressBalanceResponseStx = balance.stx; - console.log(stxAmount); -})().catch(console.error); -``` - -### WebSocket sample - -The WebSocket components enable you to subscribe to specific updates, providing a near real-time display of updates on transactions and accounts. - -```js -import { connectWebSocketClient } from '@stacks/blockchain-api-client'; -const client = await connectWebSocketClient('ws://stacks-node-api.blockstack.org/'); -const sub = await client.subscribeAddressTransactions(contractCall.txId, event => { - console.log(event); -}); -await sub.unsubscribe(); -``` diff --git a/content/feature-guides/pagination.md b/content/feature-guides/pagination.md deleted file mode 100644 index 8350665178..0000000000 --- a/content/feature-guides/pagination.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -Title: Pagination ---- - -# Pagination - -To make API responses more compact, lists returned by the API are paginated. For lists, the response body includes: - -- `limit`: the number of list items return per response -- `offset`: the number of elements to skip (starting from 0) -- `total`: the number of all available list items -- `results`: the array of list items (length of array equals the set limit) - -Here is a sample response: - -```json -{ - "limit": 10, - "offset": 0, - "total": 101922, - "results": [{ - "tx_id": "0x924e0a688664851f5f96b437fabaec19b7542cfcaaf92a97eae43384cacd83d0", - "nonce": 308, - "fee_rate": "0", - "sender_address": "ST39F7SA0AKH7RB363W3NE2DTHD3P32ZHNX2KE7J9", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "on_chain_only", - "block_hash": "0x17ceb3da5f36aab351d6b14f5aa77f85bb6b800b954b2f24c564579f80116d99", - "parent_block_hash": "0xe0d1e8d216a77526ae2ce40294fc77038798a179a6532bb8980d3c2183f58de6", - "block_height": 14461, - "burn_block_time": 1622875042, - "burn_block_time_iso": "2021-06-05T06:37:22.000Z", - "canonical": true, - "tx_index": 0, - "tx_status": "success", - "tx_result": {}, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 0, - "events": [], - "tx_type": "coinbase", - "coinbase_payload": {} - }, - {} - ] -} -``` - -Using the `limit` and `offset` properties, you can paginate through the entire list by increasing the offset by the limit until you reach the total. diff --git a/content/feature-guides/rate-limiting.md b/content/feature-guides/rate-limiting.md deleted file mode 100644 index 8df9c1a341..0000000000 --- a/content/feature-guides/rate-limiting.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -Title: Rate Limiting ---- - -# Rate Limiting - -Rate limiting will be applied to all API endpoints and [faucet requests](https://docs.hiro.so/api#tag/Faucets), based on the requested token addresses. - -You can refer to the rate limit for each endpoint in the table below: - -| **Endpoint** | **Rate Per Minute(RPM) limit** | -| ------------------------------------------------------------------------------------------- |-----------------------| -| api.mainnet.hiro.so/extended/
api.hiro.so/extended/
|
500

| -| api.mainnet.hiro.so/rosetta/
api.hiro.so/rosetta/
|
200

| -| api.mainnet.hiro.so/v2/
api.hiro.so/v2/
|
100

| -| api.testnet.hiro.so/extended/
| 300
| -| api.testnet.hiro.so/v2/
| 100
| -| api.testnet.hiro.so/extended/v1/faucets/
| 1
| - -## STX faucet - -The Stacks faucet rate limits depend on the type of request. For stacking requests, there is a limit of **1 request per 2 days**. In case of regular Stacks faucet requests, the limits are set to **1 request per minute**. diff --git a/content/feature-guides/requesting-proofs.md b/content/feature-guides/requesting-proofs.md deleted file mode 100644 index 7238f89cf5..0000000000 --- a/content/feature-guides/requesting-proofs.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -Title: Requesting proofs ---- - -# Requesting Proofs - -Several endpoints will request the [MARF Merkel Proof](https://github.com/stacksgov/sips/blob/main/sips/sip-004/sip-004-materialized-view.md#marf-merkle-proofs) by default. - -Provided with the proof, a client can verify the value, cumulative energy spent, and the number of confirmation for the response value provided by the API. - -Requesting the proof requires more resources (computation time, response time, and response body size). To avoid the additional resources, in case verification is not required, API endpoints allow setting the request parameter: `proof=0`. The returned response object will not have any proof fields. diff --git a/content/feature-guides/rosetta-support.md b/content/feature-guides/rosetta-support.md deleted file mode 100644 index 7059b3df65..0000000000 --- a/content/feature-guides/rosetta-support.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -Title: Rosetta support ---- - -# Rosetta Support - -The Stacks Blockchain API supports [v1.4.6 of the Rosetta specification](https://www.rosetta-api.org/). This industry open standard makes it easy to integrate blockchain deployment and interaction. - -# Testing the Rosetta APIs - -To build and run the `rosetta.Dockerfile` image, run the following command: - -``` -docker build -t rosetta:stable -f rosetta.Dockerfile . -docker run -d \ - -p 3999:3999 \ - --mount source=rosetta-data,target=/data \ - --name rosetta \ -rosetta:stable -``` - -To build and run the `rosetta.Dockerfile` image using an [archived chainstate](https://docs.hiro.so/references/hiro-archive#what-is-the-hiro-archive), run the following command: - -``` -docker build -t rosetta:stable -f rosetta.Dockerfile . -docker run -d \ - -p 3999:3999 \ - -e SEED_CHAINSTATE=true \ - --mount source=rosetta-data,target=/data \ - --name rosetta \ -rosetta:stable -``` - - -By default, this will connect to the mainnet. To run a local node, run the following command: - -``` -docker run -d \ - -p 3999:3999 \ - -e STACKS_NETWORK=mocknet \ - --mount source=rosetta-data,target=/data \ - --name rosetta \ -rosetta:stable -``` - -To use a recent version of [rosetta-cli](https://github.com/coinbase/rosetta-cli) to test the endpoints, use the following command: -``` -rosetta-cli \ - --configuration-file rosetta-cli-config/rosetta-config.json \ - view:block 1 -rosetta-cli \ - --configuration-file rosetta-cli-config/rosetta-config.json \ - check:data -``` - -`rosetta-cli` will then sync with the blockchain until it reaches the tip, and then exit, displaying the test results. -Currently, account reconciliation is disabled; proper testing of that feature requires token transfer transactions while `rosetta-cli` is running. -Documentation for the Rosetta APIs can be found [here](https://hirosystems.github.io/stacks-blockchain-api/). -You may also review Data and Construction Rosetta endpoints [here](https://docs.hiro.so/api#tag/Rosetta). diff --git a/content/feature-guides/search-endpoint.md b/content/feature-guides/search-endpoint.md deleted file mode 100644 index 97de33a487..0000000000 --- a/content/feature-guides/search-endpoint.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -Title: Search Endpoint ---- - -# Search Endpoint - -The Stacks Blockchain API provides a search endpoint ([`/extended/v1/search/{id}`](https://docs.hiro.so/api#operation/search_by_id)) that takes an identifier and responds with matching blocks, transactions, contracts, or accounts. - -The search operation used by the endpoint (for example, `FROM txs WHERE tx_id = $1 LIMIT 1`) matches hashes **equal** to the provided identifier. Fuzzy search, incomplete identifiers, or wildcards will not return any matches. diff --git a/content/feature-guides/transactions.md b/content/feature-guides/transactions.md deleted file mode 100644 index 97c1eb1bf6..0000000000 --- a/content/feature-guides/transactions.md +++ /dev/null @@ -1,607 +0,0 @@ ---- -title: Transactions ---- - -# Transactions - -Transactions are the fundamental unit of execution in the Stacks blockchain. Each transaction is originated from a [Stacks account](https://docs.stacks.co/understand-stacks/accounts), and is retained in the Stacks blockchain history. This guide helps you understand Stacks transactions. - -## Lifecycle - -Transactions go through phases before being finally confirmed and propagated on the Stacks network. - -- **Generate**: Transactions are assembled according to the encoding specification. -- **Validate and sign**: Transactions are validated to confirm they are well-formed. Required signatures are filled in. -- **Broadcast**: Transactions are sent to a node. -- **Register**: A miner receives transactions, verifies, and adds them to the ["mempool"](https://academy.binance.com/en/glossary/mempool), a holding area for all the pending transactions. -- **Process**: Miners review the mempool and select transactions for the next block to be mined. Depending on the transaction type, different actions can happen during this step. For example, post-conditions could be verified for a token transfer, smart-contract defined tokens could be minted, or an attempt to call an existing smart contract method could be made. -- **Confirm**: Miners successfully mine blocks, with each block containing a set of transactions. The transactions inside are successfully propagated to the network. - -:::info - -A transaction can have one of three states once it is registered: `pending`, `success`, or `failed`. - -::: - -## Types - -Stacks supports a set of different transaction types: - -| **Type** | **Value** | **Description** | -| ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Coinbase | `coinbase` | The first transaction in a new block (an entity holding several transactions). Used to register for block rewards. These are not manually generated and broadcasted like other types of transactions. | -| Token transfer | `token_transfer` | Asset transfer from a sender to a recipient | -| Contract deploy | `smart_contract` | Contract instantiation | -| Contract call | `contract_call` | Contract call for a public, non read-only function | -| Poison Microblock | `poison_microblock` | Punish leaders who intentionally equivocate about the microblocks they package | - -A sample of each transaction type can be found in the [Stacks Blockchain API response definition for transactions](https://docs.hiro.so/api#operation/get_transaction_by_id). - -~> Read-only contract call calls do **not** require transactions. Read more about it in the [network guide](https://docs.stacks.co/understand-stacks/network#read-only-function-calls). - -## Anchor mode - -Transactions can be mined either in an anchor block or in a [microblock](https://docs.stacks.co/understand-stacks/microblocks). If microblocks -are selected, the transaction can be confirmed with a lower latency than the anchor block time. - -The anchor mode enum has three options: - -- `OnChainOnly` The transaction MUST be included in an anchored block -- `OffChainOnly`: The transaction MUST be included in a microblock -- `Any`: The leader can choose where to include the transaction - -Here is an example where the transaction must be included in a microblock: - -```js -import { AnchorMode, makeSTXTokenTransfer } from "@stacks/transactions"; -import { StacksTestnet, StacksMainnet } from "@stacks/network"; - -const BigNum = require("bn.js"); - -const txOptions = { - recipient: "SP3FGQ8Z7JY9BWYZ5WM53E0M9NK7WHJF0691NZ159", - amount: new BigNum(12345), - senderKey: - "b244296d5907de9864c0b0d51f98a13c52890be0404e83f273144cd5b9960eed01", - network: new StacksTestnet(), // for mainnet, use `StacksMainnet()` - anchorMode: AnchorMode.OffChainOnly, // must be included in a microblock -}; - -const transaction = await makeSTXTokenTransfer(txOptions); -``` - -## Post-conditions - -Transaction post-conditions are a feature meant to limit the damage malicious smart contract developers and smart contract bugs can do in terms of destroying a user's assets. Post-conditions are executed whenever a contract is instantiated or a public method of an existing contract is executed. Whenever a post-condition fails, a transaction will be forced to abort. - -Post-conditions are meant to be added by the user (or by the user's wallet software) at the moment they sign a transaction. For example, a user may append a post-condition saying that upon successful execution, their account's Stacks (STX) balance should have decreased by no more than 1 STX. If this is not the case, then the transaction would abort and the account would only pay the transaction fee of processing it. - -### Attributes - -Each transaction includes a field that describes zero or more post-conditions that must all be true when the transaction finishes running. The post-condition describes only properties of the owner of the asset before the transaction happened. For a transfer transaction, the post-condition is about the sender, for a burn transaction, the post-condition is about the previous owner. A post-condition includes the following information: - -| **Attribute** | **Sample** | **Description** | -| -------------------------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------ | -| [Principal](https://docs.stacks.co/write-smart-contracts/principals) | `SP2ZD731ANQZT6J4K3F5N8A40ZXWXC1XFXHVVQFKE` | Original owner of the asset, can be a Stacks address or a contract | -| Asset id | `STX` | Asset to apply conditions to (could be STX, fungible, or non-fungible tokens) | -| Comparator | `>=` | Compare operation to be applied (could define "how much" or "whether or not the asset is owned") | -| Literal | `1000000` | Integer or boolean value used to compare instances of the asset against via the condition | - -### Evaluation modes - -The Stacks blockchain supports an `allow` or `deny` mode for evaluating post-conditions: - -- Allow: other asset transfers not covered by the post-conditions are permitted -- Deny: no other asset transfers are permitted besides those named in the post-conditions - -## Authorization - -Transactions can be authorized in two ways: _standard_ and _sponsored_. The authorization determines whether or not the originating account is also the paying account. In a transaction with a standard authorization, the origin and paying accounts are the same. In a transaction with a sponsored authorization, the origin and paying accounts are distinct, and both accounts must sign the transaction for it to be valid (first the origin, then the spender). - -**Sponsored transactions** enable developers and/or infrastructure operators to pay for users to call into their smart contracts, even if users do not have the Stacks (STX) to do so. - -The signing flow for sponsored transactions would be to have the user first sign the transaction with their origin account with the intent of it being sponsored (that is, the user must explicitly allow a sponsor to sign), and then have the sponsor sign with their paying account to pay for the user's transaction fee. - -## Encoding - -A transaction includes the following information. Multiple-byte fields are encoded as big-endian. - -| **Type** | **Description** | -| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Version number | Network version. `0x80` for testnet, `0x0` for mainnet | -| Chain ID | Chain instance ID. `0x80000000` for testnet, `0x00000001` for mainnet | -| Authorization | Type of authorization (`0x04` for standard, `0x05` for sponsored) and [spending conditions](https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-authorization) | -| Post-conditions | List of post-conditions, each including a [type ID and variable-length condition body](https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-post-conditions-1) | -| Payload | Transaction type and variable-length [payload](https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-payloads-1) | - -## Construction - -The easiest way to construct well-formed transactions is by [using the Stacks Transactions JS library](https://github.com/blockstack/stacks.js/tree/master/packages/transactions#post-conditions). You can construct the following transaction types: - -- Stacks token transfer -- Smart contract deploy -- Smart contract function call - -When constructing transactions, it is required to set the network the transaction is intended for. This can be either mainnet or testnet. At the moment of this writing, the only available option is the [testnet network](https://docs.stacks.co/understand-stacks/testnet). - -:::info - -Transactions can be constructed and serialized offline. However, it is required to know the nonce and estimated fees ahead of time. Once internet access is available, the transaction can be broadcast to the network. Keep in mind that the nonce and fee might change during offline activity, making the transaction invalid. - -::: - -### Stacks Token transfer - -```js -import { makeSTXTokenTransfer } from "@stacks/transactions"; -import { StacksTestnet, StacksMainnet } from "@stacks/network"; - -const BigNum = require("bn.js"); - -const txOptions = { - recipient: "SP3FGQ8Z7JY9BWYZ5WM53E0M9NK7WHJF0691NZ159", - amount: new BigNum(12345), - senderKey: - "b244296d5907de9864c0b0d51f98a13c52890be0404e83f273144cd5b9960eed01", - network: new StacksTestnet(), // for mainnet, use `StacksMainnet()` - memo: "test memo", - nonce: new BigNum(0), // set a nonce manually if you don't want builder to fetch from a Stacks node - fee: new BigNum(200), // set a tx fee if you don't want the builder to estimate -}; - -const transaction = await makeSTXTokenTransfer(txOptions); -``` - -:::info - -Read more about [nonces](http://docs.stacks.co/understand-stacks/network#nonces) in the network guide - -::: - -### Smart contract deployment - -```js -import { makeContractDeploy } from "@stacks/transactions"; -import { StacksTestnet, StacksMainnet } from "@stacks/network"; -const BigNum = require("bn.js"); - -const txOptions = { - contractName: "contract_name", - codeBody: fs.readFileSync("/path/to/contract.clar").toString(), - senderKey: - "b244296d5907de9864c0b0d51f98a13c52890be0404e83f273144cd5b9960eed01", - network: new StacksTestnet(), // for mainnet, use `StacksMainnet()` -}; - -const transaction = await makeContractDeploy(txOptions); -``` - -### Smart contract function call - -```js -import { makeContractCall, BufferCV } from "@stacks/transactions"; -import { StacksTestnet, StacksMainnet } from "@stacks/network"; - -const BigNum = require("bn.js"); - -const txOptions = { - contractAddress: "SPBMRFRPPGCDE3F384WCJPK8PQJGZ8K9QKK7F59X", - contractName: "contract_name", - functionName: "contract_function", - functionArgs: [bufferCVFromString("foo")], - senderKey: - "b244296d5907de9864c0b0d51f98a13c52890be0404e83f273144cd5b9960eed01", - // attempt to fetch this contracts interface and validate the provided functionArgs - validateWithAbi: true, - network: new StacksTestnet(), // for mainnet, use `StacksMainnet()` -}; - -const transaction = await makeContractCall(txOptions); -``` - -### Clarity value types - -Building transactions that call functions in deployed clarity contracts requires you to construct valid Clarity values to pass to the function as arguments. The [Clarity type system](https://github.com/stacksgov/sips/blob/main/sips/sip-002/sip-002-smart-contract-language.md#clarity-type-system) contains the following types: - -| Type | Declaration | Description | -| ---------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Tuple | `(tuple (key-name-0 key-type-0) ...)` | Typed tuple with named fields | -| List | `(list max-len entry-type)` | List of maximum length max-len, with entries of type entry-type | -| Response | `(response ok-type err-type)` | Object used by public functions to commit their changes or abort. May be returned or used by other functions as well, however, only public functions have the commit/abort behavior | -| Optional | `(optional some-type)` | Option type for objects that can either be (some value) or none | -| Buffer | `(buff max-len)` | Byte buffer with maximum length `max-len` | -| Principal | `principal` | Object representing a principal (whether a contract principal or standard principal) | -| Boolean | `bool` | Boolean value ('true or 'false) | -| Signed Integer | `int` | Signed 128-bit integer | -| Unsigned Integer | `uint` | Unsigned 128-bit integer | -| ASCII String | `(define-data-var my-str (string-ascii 11) "hello world")` | String value encoded in ASCII | -| UTF-8 String | `(define-data-var my-str (string-utf8 7) u"hello \u{1234}")` | String value encoded in UTF-8 | - -The Stacks Transactions JS library contains TypeScript types and classes that map to the Clarity types, in order to make it easy to construct well-typed Clarity values in JavaScript. These types all extend the abstract class `ClarityValue`. - -Here are samples for Clarity value constructions using this library: - -```js -// construct boolean clarity values -const t = trueCV(); -const f = falseCV(); - -// construct optional clarity values -const nothing = noneCV(); -const something = someCV(t); - -// construct a buffer clarity value from an existing Buffer -const buffer = Buffer.from("foo"); -const bufCV = bufferCV(buffer); - -// construct signed and unsigned integer clarity values -const i = intCV(-10); -const u = uintCV(10); - -// construct principal clarity values -const address = "SP2JXKMSH007NPYAQHKJPQMAQYAD90NQGTVJVQ02B"; -const contractName = "contract-name"; -const spCV = standardPrincipalCV(address); -const cpCV = contractPrincipalCV(address, contractName); - -// construct response clarity values -const errCV = responseErrorCV(trueCV()); -const okCV = responseOkCV(falseCV()); - -// construct tuple clarity values -const tupCV = tupleCV({ - a: intCV(1), - b: trueCV(), - c: falseCV(), -}); - -// construct list clarity values -const l = listCV([trueCV(), falseCV()]); -``` - -If you develop in Typescript, the type checker can help prevent you from creating wrongly-typed Clarity values. For example, the following code won't compile since lists are homogeneous in Clarity, meaning they can only contain values of a single type. It is important to include the type variable `BooleanCV` in this example; otherwise the typescript type checker won't know which type the list is of and won't enforce homogeneity. - -```js -const l = listCV < BooleanCV > [trueCV(), intCV(1)]; -``` - -### Setting post-conditions - -The Stacks Transactions JS library supports the construction of post conditions. - -Here is an example of a post condition that ensures the account's balance will only decrease by no more than 1 STX: - -```js -const account = 'SP2ZD731ANQZT6J4K3F5N8A40ZXWXC1XFXHVVQFKE'; -const comparator = FungibleConditionCode.GreaterEqual; -// assuming the Stacks (STX) balance before the transaction is 12346 -const amount = new BigNum(12345); - -const standardSTXPostCondition = makeStandardSTXPostCondition( - account, - comparator, - amount -); - -const txOptions = { - ..., // other transaction options - postConditions: [standardSTXPostCondition] -} - -const transaction = await makeContractCall(txOptions); -``` - -## Serialization - -A well-formed transaction construct is encoded in [Recursive Length Prefix ("RLP")](https://eth.wiki/en/fundamentals/rlp). RLP encoding results in a variable-sized byte array. - -In order to broadcast transactions to and between nodes on the network, RLP data is represented in hexadecimal string (also called the **raw format**). - -To support an API-friendly and human-readable representation, the [Stacks Blockchain API](/get-started/stacks-blockchain-api) converts transactions into a JSON format. - -=> [The Stacks Transactions JS library](https://github.com/blockstack/stacks.js) supports serialization of transactions. - -### Raw format - -Broadcasting transactions directly to the Stacks Blockchain API or Node RPC API requires the transaction to be serialized and in hexadecimal representation. - -```js -// to see the raw serialized tx -const serializedTx = transaction.serialize().toString("hex"); - -console.log(serializedTx); -``` - -The preceding method returns the following string: - -```bash -8080000000040015c31b8c1c11c515e244b75806bac48d1399c77500000000000000000000000000000000000127e88a68dce8689fc94ff4c186bf8966f8d544c5129ff84d95a2459b5e8e7c39430388f6c8f85cce8c9ce5e6ec1e157116ca4a67d65ab53768b25d5fb5831939030200000000000516df0ba3e79792be7be5e50a370289accfc8c9e03200000000000f424068656c6c6f20776f726c640000000000000000000000000000000000000000000000 -``` - --> Transaction IDs are generated by hashing the raw transaction with [sha512/256](https://eprint.iacr.org/2010/548.pdf) - -### JSON format - -When called the Stacks Blockchain API or Node RPC API, transactions returned will be serialized in a JSON format. Here is a token transfer transaction: - -```js -{ - "tx_id": "0x77cb1bf0804f09ad24b4c494a6c00d5b10bb0afbb94a0d646fa9640eff338e37", - "nonce": 5893, - "fee_rate": "180", - "sender_address": "STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "any", - "block_hash": "0xf1e54a3acd04232f1362c09d5096b095363158348303396ea5fc5092e1d8788f", - "parent_block_hash": "0x3de356eb5afa5d7b781f6a925d31d69d218b772ec995930b4e15d92bd15443f9", - "block_height": 13984, - "burn_block_time": 1622678407, - "burn_block_time_iso": "2021-06-03T00:00:07.000Z", - "canonical": true, - "tx_index": 2, - "tx_status": "success", - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 1, - "events": [], - "tx_type": "token_transfer", - "token_transfer": { - "recipient_address": "STZ4C5RT4WH4JGRQA5E0ZF5PPSQCVY1WRB6E2CGW", - "amount": "500000000", - "memo": "0x46617563657400000000000000000000000000000000000000000000000000000000" - } -} -``` - -### Deserializing - -Serialized, raw transactions can be deserialized without access to the internet using [the Stacks Transactions JS library](https://github.com/blockstack/stacks.js/tree/master/packages/transactions): - -```js -import { BufferReader, deserializeTransaction } from "@stacks/transactions"; - -// receive raw transaction -const serializedTx = "808000000..."; - -const bufferReader = new BufferReader(Buffer.from(serializedTx)); -const deserializedTx = deserializeTransaction(bufferReader); - -// print memo -console.log(deserializedTx.payload.memo.content); -``` - -## Signature and Verification - -Every transaction contains verifiable signatures that certify its authenticity. These signatures are generated by signing the transaction hash with the origin's private key. The Elliptic Curve Digital Signature Algorithm (ECDSA) is used for signing, with the curve set to secp256k1. The internal structure that encapsulates the signature is the spending condition. Spending conditions include several parameters including the public key hash, nonce, fee rate and the recoverable ECDSA signature. - -When constructing a transaction using the JS library, you can supply the private key and signing will be completed automatically. If you would like to sign the transaction manually, use the `TransactionSigner` class. - -Below are the steps taken to generate the signature internal to the transaction library. - -### Signing steps - -1: Generate a transaction hash for signing. This is the SHA512/256 digest of the serialized transaction before a signature is added. -2: Append the authorization type, fee amount and nonce to the transaction hash to create the signature hash. -3: Generate the SHA512/256 hash of the resulting string from the previous step. -4: Sign the hash using ECDSA and the origin private key. -5: Add the resulting recoverable ECDSA signature to the transaction spending condition. - -### Single signature transaction - -As the name implies a single signature transaction contains 1 signature from the origin account that authorizes a token spend or smart contract deploy/execution. - -### Multi-signature transaction - -For multi-sig accounts, multiple keys must sign the transaction for it to be valid. - -### Sponsored transaction - -A sponsored transaction is one where a second signer sets and pays the transaction fees. The origin must sign the transaction first before the sponsor signs. - -## Broadcast - -With a serialized transaction in the [raw format](#raw-format), it can be broadcast to the network using the [`POST /v2/transactions`](https://docs.hiro.so/api#operation/post_core_node_transactions) endpoint: - -```bash -# for mainnet, replace `testnet` with `mainnet` -curl --location --request POST 'https://api.testnet.hiro.so/v2/transactions' \ ---header 'Content-Type: application/octet-stream' \ ---data-raw '' -``` - -The API will respond with a `HTTP 200 - OK` if the transaction was successfully added to the mempool. - -There is no explicit time constraint between the construction of a valid signed transaction and when it can be broadcast. There are, however, some constraints to be aware of. The following reasons can deem a transaction invalid after some period: - -- Token transfer: Nonce changed in-between construction and broadcast -- Contract call or deploy: Block height is evaluated (with [`at-block`](https://docs.stacks.co/references/language-functions#at-block)) and changed in-between construction and broadcast - -## Mempool - -Once a transaction has been successfully broadcast to the network, the transaction is added to the mempool of the node -that received the broadcast. From the [Bitcoin wiki][]: "a node's memory pool contains all 0-confirmation transactions -across the entire network that that particular node knows about." - -So, the set of transactions in the mempool might be -different for each node in the network. For example, when you query the mempool endpoints on -`api.mainnet.hiro.so`, the response reflects the set of unconfirmed transactions known to the nodes that -service that API. - -Miners can employ different heuristics and strategies for deciding which transactions to admit into the mempool and -which transactions to include from the mempool when mining a block. Some transactions may be rejected outright (for -example, if there are insufficient funds at an address) while others might be accepted into the mempool, but not mined -into a block indefinitely (for example if fees are too low). - -Transactions that are admitted in the mempool but not yet -mined are said to be "pending." The current implementation of [stacks-blockchain][] discards pending mempool -transactions after [256 blocks][]. - -### Best practices - -- **Nonce:** it's crucial that transactions use the correct nonce. Using an incorrect nonce makes it less likely that - the transaction is mined in a timely manner. To determine the correct nonce, query the [`accounts`][] endpoint of - the node you intend to broadcast your transaction to. The value of the `nonce` field of the response is the next nonce - that the node expects to consume for that account. Nonce starts at `0`, so the first transaction from an account should - be set to `nonce=0`. -- **Transaction chaining:** even when using the correct nonce, transactions might arrive at a node out-of-order. For - instance, a transaction with `nonce=1` may arrive in the mempool before the `nonce=0` transaction. Stacks nodes admit - such out-of-order transactions in the mempool, but only up to a limit ([25 in the current implementation][]). So, you - should limit any chain of unconfirmed transactions from a single account to less than 25. Making this limit higher has - downsides, discussed in [this issue](https://github.com/blockstack/stacks-blockchain/issues/2384). If you need to send - more than 25 transactions per block, consider using multiple accounts or a smart-contract based approach. See - [this tool](https://www.npmjs.com/package/@stacks/send-many-stx-cli), for example, that allows up to 200 token - transfers in a single transaction. - -## Querying - -Transactions on the Stacks 2.0 network can be queried using the [Stacks Blockchain API](/get-started/stacks-blockchain-api). The API exposes two interfaces, a RESTful JSON API and a WebSockets API. - -For convenience, a Postman Collection was created and published: [![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/614feab5c108d292bffa) - --> Note: The API can be easily consumed using a generated [JS client library](https://hirosystems.github.io/stacks-blockchain-api/client/index.html). The generator uses an OpenAPI specification and supports other languages and frameworks. - -@include "stacks-api-pagination.md" - -### Get recent transactions - -Recent transactions can be obtained through the [`GET /extended/v1/tx`](https://docs.hiro.so/api#operation/get_transaction_list) endpoint: - -```bash -# for mainnet, replace `testnet` with `mainnet` -curl 'https://api.testnet.hiro.so/extended/v1/tx' -``` - -Sample response: - -```js -{ - "limit": 10, - "offset": 0, - "total": 101922, - "results": [ - { - "tx_id": "0x5e9f3933e358df6a73fec0d47ce3e1062c20812c129f5294e6f37a8d27c051d9", - "tx_status": "success", - "tx_type": "coinbase", - "fee_rate": "0", - "sender_address": "ST3WCQ6S0DFT7YHF53M8JPKGDS1N1GSSR91677XF1", - "sponsored": false, - "post_condition_mode": "deny", - "block_hash": "0x58412b50266debd0c35b1a20348ad9c0f17e5525fb155a97033256c83c9e2491", - "block_height": 3231, - "burn_block_time": 1594230455, - "canonical": true, - "tx_index": 0, - "coinbase_payload": { - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - } - ] -} -``` - -### Get mempool transactions - -Mempool (registered, but not processed) transactions can be obtained using the [`GET /extended/v1/tx/mempool`](https://docs.hiro.so/api#operation/get_mempool_transaction_list) endpoint: - -```bash -# for mainnet, replace `testnet` with `mainnet` -curl 'https://api.testnet.hiro.so/extended/v1/tx/mempool' -``` - -Sample response: - -```js -{ - "limit": 96, - "offset": 0, - "total": 5, - "results": [ - { - "tx_id": "0xb31df5a363dad31723324cb5e0eefa04d491519fd30827a521cbc830114aa50c", - "tx_status": "pending", - "tx_type": "token_transfer", - "receipt_time": 1598288370, - "receipt_time_iso": "2020-08-24T16:59:30.000Z", - "fee_rate": "180", - "sender_address": "STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6", - "sponsored": false, - "post_condition_mode": "deny", - "token_transfer": { - "recipient_address": "ST1GY25DM8RZV4X15X07THRZ2C5NMWPGQWKFGV87F", - "amount": "500000", - "memo": "0x46617563657400000000000000000000000000000000000000000000000000000000" - } - } - ] -} -``` - --> The `memo` field is represented as a hexadecimal string of a byte buffer - -#### Filter by type - -Recent transactions can be filtered by [transaction type](#types) using the `type` query parameter: - -```bash -# for mainnet, replace `testnet` with `mainnet` -curl 'https://api.testnet.hiro.so/extended/v1/tx/?type=contract_call' -``` - -### Get transaction by ID - -A specific transaction can be obtained using the [`GET /extended/v1/tx/`](https://docs.hiro.so/api#operation/get_transaction_by_id) endpoint: - -```bash -# for mainnet, replace `testnet` with `mainnet` -curl 'https://api.testnet.hiro.so/extended/v1/tx/' -``` - -Sample response: - -```js -{ - "limit": 96, - "offset": 0, - "total": 5, - "results": [ - { - "tx_id": "0xb31df5a363dad31723324cb5e0eefa04d491519fd30827a521cbc830114aa50c", - "tx_status": "pending", - "tx_type": "token_transfer", - "receipt_time": 1598288370, - "receipt_time_iso": "2020-08-24T16:59:30.000Z", - "fee_rate": "180", - "sender_address": "STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6", - "sponsored": false, - "post_condition_mode": "deny", - "token_transfer": { - "recipient_address": "ST1GY25DM8RZV4X15X07THRZ2C5NMWPGQWKFGV87F", - "amount": "500000", - "memo": "0x46617563657400000000000000000000000000000000000000000000000000000000" - } - } - ] -} -``` - -## Garbage Collection - -Broadcast transactions stay in the mempool for 256 blocks (~42 hours). If a transaction is not confirmed within that time, it is removed from the mempool. - -Most transactions stay in the mempool due to nonce issues. If you see a transaction pending for an unusual time, review the nonce of the account and the transaction. - -If a transaction is removed from the mempool, the transaction was not processed and no changes were made to the blockchain state. - -[bitcoin wiki]: https://en.bitcoin.it/wiki/Vocabulary#Memory_pool -[256 blocks]: https://github.com/blockstack/stacks-blockchain/blob/master/src/core/mempool.rs#L59 -[stacks-blockchain]: https://github.com/blockstack/stacks-blockchain -[`accounts`]: https://docs.stacks.co/understand-stacks/accounts#get-stacks-stx-balance-and-nonce -[25 in the current implementation]: https://github.com/blockstack/stacks-blockchain/blob/08c4b9d61b48b99475c0197e7e7fea50c7fb0e29/src/core/mempool.rs#L66 diff --git a/content/feature-guides/use-clarity-values.md b/content/feature-guides/use-clarity-values.md deleted file mode 100644 index 113d1ed15e..0000000000 --- a/content/feature-guides/use-clarity-values.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -Title: Use Clarity Values ---- - - -# Using Clarity Values - -Some endpoints, like the [read-only function contract call](https://docs.hiro.so/api/call-read-only-function), require input to be a serialized [Clarity value](https://docs.hiro.so/stacks-blockchain-api/feature-guides/transactions#clarity-value-types). Other endpoints return serialized values that need to be deserialized. - -The example shown below illustrates Clarity value usage in combination with the API. - -The `@stacks/transactions` library supports typed contract calls and makes response value utilization much simpler. - -```ts -import { - Configuration, - SmartContractsApiInterface, - SmartContractsApi, - ReadOnlyFunctionSuccessResponse, -} from '@stacks/blockchain-api-client'; -import { uintCV, UIntCV, cvToHex, hexToCV, ClarityType } from '@stacks/transactions'; - -(async () => { - const apiConfig: Configuration = new Configuration({ - fetchApi: fetch, - // for mainnet, replace `testnet` with `mainnet` - basePath: 'https://api.testnet.hiro.so', // defaults to http://localhost:3999 - }); - - const contractsApi: SmartContractsApiInterface = new SmartContractsApi(apiConfig); - - const principal: string = 'ST000000000000000000002AMW42H'; - - // use most recent from: https://api..hiro.so/v2/pox - const rewardCycle: UIntCV = uintCV(22); - - // call a read-only function - const fnCall: ReadOnlyFunctionSuccessResponse = await contractsApi.callReadOnlyFunction({ - contractAddress: principal, - contractName: 'pox', - functionName: 'is-pox-active', - readOnlyFunctionArgs: { - sender: principal, - arguments: [cvToHex(rewardCycle)], - }, - }); - - console.log({ - status: fnCall.okay, - result: fnCall.result, - representation: hexToCV(fnCall.result).type === ClarityType.BoolTrue, - }); -})().catch(console.error); -``` diff --git a/content/feature-guides/use-stacks-blockchain-api.md b/content/feature-guides/use-stacks-blockchain-api.md deleted file mode 100644 index 399dd8dc8f..0000000000 --- a/content/feature-guides/use-stacks-blockchain-api.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -Title: Use Stacks Blockchain API ---- - - -# Use Stacks Blockchain API - -The RESTful JSON API can be used without any authorization. The base path for the API is: - -```for mainnet, replace `testnet` with `mainnet -https://api.testnet.hiro.so/``` - -For more information about the Stacks Blockchain API, please refer to the [Stacks API reference](https://docs.hiro.so/api?_gl=1*1nvx6u*_ga*NTQ3NDA3NTIuMTY2MDA3MTQ1MA..*_ga_NB2VBT0KY2*MTY2MzkxNTIzNS4yMi4xLjE2NjM5MTY1OTMuMC4wLjA.) page. - -The API is comprised of two parts: the Stacks Blockchain API and the Stacks Node RPC API. The Node RPC API is exposed by every running node. Stacks Blockchain API, however, introduces additional capabilities (for example, retrieving all transactions), while also running proxies calls directly to Stacks Node RPC API. - -## Stacks node RPC API - -The stacks-node implementation exposes JSON RPC endpoints. - -All `/v2/` routes are routed through a proxy to a Hiro-hosted Stacks Node. For a trustless architecture, you should make these requests to a self-hosted node. - -## Stacks blockchain API - -All `/extended/` routes are provided by the Stacks 2.0 Blockchain API directly, and extend the Stacks Node API capabilities to make integration much easier. - -## Running an API server - -While Hiro provides a hosted API server of the Stacks Blockchain API, anyone can spin up their own version. Please [follow the instructions in this guide](/get-started/running-api-node) to start a Docker container with the API service running. - -Once started, the API is available on `localhost:3999` - -[microblocks_api]: https://docs.hiro.so/api#tag/Microblocks diff --git a/content/getting-started.md b/content/getting-started.md deleted file mode 100644 index 78d2ab83ba..0000000000 --- a/content/getting-started.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -Title: Getting Started ---- - -# Getting Started - -This page describes how you can start the API server and service dependencies. - -## Prerequisites - -Before you can start the API server and its dependencies, you must first ensure that Docker is already installed on your machine. If you do not aready have Docker installed, please install Docker [here](https://www.docker.com/). - -## Starting the API Server - -To start the API server: - -1. Clone the [Stacks Blockchain API](https://github.com/hirosystems/stacks-blockchain-api) repository. -2. Install the related dependencies with the following command: - -`npm install` - -3. Start the API server and service dependencies by entering the following command in your terminal: - -`Run npm run dev:integrated` - -4. Verify the server has started successfully by going to http://localhost:3999/extended/v1/status. diff --git a/content/how-to-guides/how-to-deploy-service-dependencies.md b/content/how-to-guides/how-to-deploy-service-dependencies.md deleted file mode 100644 index b49b63ad2b..0000000000 --- a/content/how-to-guides/how-to-deploy-service-dependencies.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -Title: Deploy Service Dependencies ---- - -# Deploy Service Dependencies - -Now that you have installed Docker and started the API server, you should now deploy related service dependencies. - -To deploy service dependencies, run the following npm command in your terminal window: - -`npm run devenv:deploy` - -This command uses `docker-compose` to deploy the service dependencies (for example, PostgreSQL, Stacks core node, etc). diff --git a/content/how-to-guides/how-to-handle-errors.md b/content/how-to-guides/how-to-handle-errors.md deleted file mode 100644 index 7c4095d298..0000000000 --- a/content/how-to-guides/how-to-handle-errors.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -Title: Error Handling ---- - -# Error Handling - -The API can respond with two different error types: - -- For URLs that do not match any defined endpoint, an HTTP 404 response is returned. The body of the response lists the URL in reference (as a string) -- For invalid input values (URL/body parameters), an HTTP 400 response is returned. The body of the response is a JSON object with an `error` property. The object also includes stack trace (`stack`) and an error UUID (`errorTag`) - -## Proxied Stacks Node RPC API endpoints - -The Stacks 2.0 Blockchain API is centrally hosted. However, every running Stacks node exposes an RPC API, which allows you to interact with the underlying blockchain. Instead of using a centrally hosted API, you may directly access the RPC API of a locally hosted node. - -**Note:** The Stacks Blockchain API proxies to Node RPC endpoints. - -While the Node RPC API doe not provide the same functionality as the hosted Stacks 2.0 Blockchain API, you will have similar functionality in a way that is scoped to that specific node. The RPC API includes the following endpoints: - -- [POST /v2/transactions](https://docs.hiro.so/api#operation/post_core_node_transactions) -- [GET /v2/contracts/interface/{contract_address}/{contract_name}](https://docs.hiro.so/api#operation/get_contract_interface) -- [POST /v2/map_entry/{contract_address}/{contract_name}/{map_name}](https://docs.hiro.so/api#operation/get_contract_data_map_entry) -- [GET /v2/contracts/source/{contract_address}/{contract_name}](https://docs.hiro.so/api#operation/get_contract_source) -- [GET /v2/accounts/{principal}](https://docs.hiro.so/api#operation/get_account_info) -- [POST /v2/contracts/call-read/{contract_address}/{contract_name}/{function_name}](https://docs.hiro.so/api#operation/call_read_only_function) -- [GET /v2/fees/transfer](https://docs.hiro.so/api#operation/get_fee_transfer) -- [GET /v2/info](https://docs.hiro.so/api#operation/get_core_api_info) - -If you run a local node, the node exposes an HTTP server on port `20443`. The info endpoint would be `localhost:20443/v2/info`. diff --git a/content/how-to-guides/how-to-install-stacks-cli.md b/content/how-to-guides/how-to-install-stacks-cli.md deleted file mode 100644 index be78bafac4..0000000000 --- a/content/how-to-guides/how-to-install-stacks-cli.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: How to install Stacks CLI ---- - -The Stacks CLI enables interactions with the Stacks blockchain through a set of commands. - -## Installation - -First, ensure you have `npm` installed. Next, run the following command in your terminal: - -`npm install -g @stacks/cli` - -:::tip - -The `-g` flag makes the CLI commands available globally - -::: - -## Network selection - -By default, the CLI will attempt to interact with Stacks mainnet. However, it is possible to override the network and set it to testnet: - -```sh -stx -t -``` - -:::info - -For account usage, that means addresses generated will _only_ be available for the specific network. An account generated for testnet cannot be used on mainnet. - -::: - -Using the `-t` flag causes the CLI to connect to the testnet node at `http://stacks-node-api.blockstack.org:20443`. To specify a node to connect to, add the `-I` flag followed by the URL of the node: - -```sh -stx -I "http://localhost:20443" -``` - -## Account - -This section describes how to use the CLI to manage an account. - -:::caution - -We don't recommended you use the CLI to handle accounts with real STX tokens on the mainnet. Instead, use an appropriate wallet to support secure token holding. - -::: - -### Creating an account - -You can generate a new account for testnet by using the `make_keychain` command with the `-t` option: - -```bash -stx make_keychain -t -``` - -Your response should look like this: - -```json -{ - "mnemonic": "private unhappy random runway boil scissors remove harvest fatigue inherit inquiry still before mountain pet tail mad accuse second milk client rebuild salt chase", - "keyInfo": { - "privateKey": "381314da39a45f43f45ffd33b5d8767d1a38db0da71fea50ed9508e048765cf301", - "address": "ST1BG7MHW2R524WMF7X8PGG3V45ZN040EB9EW0GQJ", - "btcAddress": "n4X37UmRZYk9HawtS1w4xRtqJWhByxiz3c", - "index": 0 - } -} -``` - -The mnemonic is your 24 word seed phrase, which you should back up securely if you want access to this account again in the future. Once lost, it cannot be recovered. - -The Stacks address associated with the newly generated account is: -`ST1BG7MHW2R524WMF7X8PGG3V45ZN040EB9EW0GQJ` - -:::note - -The preceding address is a testnet address that can only be used on testnet. - -::: - -It is best to store the response of the CLI somewhere. You will need the private key, for instance, to send tokens to others. - -### Checking balance - -You can check the balance of your account using the following command: - -```bash -stx balance ST1BG7MHW2R524WMF7X8PGG3V45ZN040EB9EW0GQJ -t -``` - -The response should look like this: - -```json -{ - "balance": "10000", - "nonce": 0 -} -``` - -:::tip - -To receive testnet STX tokens, use the [faucet](https://explorer.hiro.so/sandbox/faucet?chain=testnet). - -::: - -Take note that the nonce for the account is `0`. Account nonce is important for transaction broadcasting. - -## Transactions - -This section describes how to use the CLI to generate and broadcast transactions. - -### Sending tokens - -In order to send tokens, the CLI command requires 5 parameters: - -- **Recipient Address**: The Stacks address of the recipient -- **Amount**: The number of Stacks to send denoted in microstacks (1 STX = 1,000,000 microstacks) -- **Fee Rate**: The fee rate for this transaction. You can safely set a fee rate of 200 for testnet -- **Nonce**: The nonce is a number that needs to be incremented monotonically for each transaction from the account. This ensures transactions are not duplicated -- **Private Key**: This is the private key corresponding to your account - -The CLI command to use with these parameters is `send_tokens`: - -```bash -stx send_tokens ST2KMMVJAB00W5Z6XWTFPH6B13JE9RJ2DCSHYX0S7 1000 200 0 381314da39a45f43f45ffd33b5d8767d1a38db0da71fea50ed9508e048765cf301 -t -``` - -```json -{ - "txid": "0xd32de0d66b4a07e0d7eeca320c37a10111c8c703315e79e17df76de6950c622c", - "transaction": "https://explorer.hiro.so/txid/0xd32de0d66b4a07e0d7eeca320c37a10111c8c703315e79e17df76de6950c622c" -} -``` - -With this command we’re sending 1000 microstacks to the Stacks address `ST2KMMVJAB00W5Z6XWTFPH6B13JE9RJ2DCSHYX0S7`. - -We set the fee rate to `200` microstacks. - -:::tip - -You can add the `-e` flag to estimate the transaction fee needed to get processed by the network, without broadcasting your transaction. - -::: - -The nonce is set to `0` for this transaction, since it will be the first transaction we send from this account. For subsequent transactions, you will need to increment this number by `1` each time. You can check the current nonce for the account using the `balance` command. - -Finally, the last parameter is the private key for the account. `381314da39a45f43f45ffd33b5d8767d1a38db0da71fea50ed9508e048765cf301` - -Once again, we’re using the `-t` option to indicate that this is a testnet transaction, so it should be broadcast to testnet. - -If valid, the transaction will be broadcast to the network, and the command will respond with a transaction ID. - -:::tip - -To obtain the raw, serialized transaction payload without broadcasting it, you can add the `-x` flag - -::: diff --git a/content/how-to-guides/how-to-query-stacks2.0-blockchain.md b/content/how-to-guides/how-to-query-stacks2.0-blockchain.md deleted file mode 100644 index cd1b54d970..0000000000 --- a/content/how-to-guides/how-to-query-stacks2.0-blockchain.md +++ /dev/null @@ -1,395 +0,0 @@ ---- -title: How to query Stacks 2.0 blockchain ---- - -The Stacks 2.0 blockchain API allows you to query the Stacks 2.0 blockchain and interact with smart contracts. It was built to maintain paginated, materialized views of the Stacks 2.0 Blockchain. - -:::caution - -This API is hosted by Hiro. Using it requires you to trust the hosted server, but provides a faster development experience. Consider [running your own API instance](#running-an-api-server) to create a fully trustless architecture for your app. - -::: - -The RESTful JSON API can be used without any authorization. The base path for the API is: - -```bash -# for mainnet, replace `testnet` with `mainnet` -https://api.testnet.hiro.so/ -``` - -:::info - -Review the [Stacks API reference](/api) for more details - -::: - -The API is comprised of two parts: the Stacks Blockchain API and the Stacks Node RPC API. The Node RPC API is exposed by every running node. Stacks Blockchain API, however, introduces additional capabilities (for example, retrieving all transactions). It also proxies calls directly to Stacks Node RPC API. - -### Stacks node RPC API - -The [stacks-node implementation](https://github.com/blockstack/stacks-blockchain/) exposes JSON RPC endpoints. - -All `/v2/` routes are routed through a proxy to a Hiro-hosted Stacks Node. For a trustless architecture, you should make these requests to a self-hosted node. - -### Stacks blockchain API - -All `/extended/` routes are provided by the Stacks 2.0 Blockchain API directly. They extend the Stacks Node API capabilities to make it easier to integrate with. - -## Using the API - -Depending on your development environment, you can access the API through a variety of methods. -The easiest way to start interacting with the API is through the [Postman Collection](https://app.getpostman.com/run-collection/614feab5c108d292bffa#?env%5BStacks%20Blockchain%20API%5D=W3sia2V5Ijoic3R4X2FkZHJlc3MiLCJ2YWx1ZSI6IlNUMlRKUkhESE1ZQlE0MTdIRkIwQkRYNDMwVFFBNVBYUlg2NDk1RzFWIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJibG9ja19pZCIsInZhbHVlIjoiMHgiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6Im9mZnNldCIsInZhbHVlIjoiMCIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoibGltaXRfdHgiLCJ2YWx1ZSI6IjIwMCIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoibGltaXRfYmxvY2siLCJ2YWx1ZSI6IjMwIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJ0eF9pZCIsInZhbHVlIjoiMHg1NDA5MGMxNmE3MDJiNzUzYjQzMTE0ZTg4NGJjMTlhODBhNzk2MzhmZDQ0OWE0MGY4MDY4Y2RmMDAzY2RlNmUwIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJjb250cmFjdF9pZCIsInZhbHVlIjoiU1RKVFhFSlBKUFBWRE5BOUIwNTJOU1JSQkdRQ0ZOS1ZTMTc4VkdIMS5oZWxsb193b3JsZFxuIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJidGNfYWRkcmVzcyIsInZhbHVlIjoiYWJjIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJjb250cmFjdF9hZGRyZXNzIiwidmFsdWUiOiJTVEpUWEVKUEpQUFZETkE5QjA1Mk5TUlJCR1FDRk5LVlMxNzhWR0gxIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJjb250cmFjdF9uYW1lIiwidmFsdWUiOiJoZWxsb193b3JsZCIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiY29udHJhY3RfbWFwIiwidmFsdWUiOiJzdG9yZSIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiY29udHJhY3RfbWV0aG9kIiwidmFsdWUiOiJnZXQtdmFsdWUiLCJlbmFibGVkIjp0cnVlfV0=) or [cURL](https://curl.haxx.se/). - -:::info - -Postman allows you to [generate sample code](https://learning.postman.com/docs/sending-requests/generate-code-snippets/) for API requests for various languages and libraries. - -::: - -## OpenAPI spec - -The Stacks API was designed using the [OpenAPI specification](https://swagger.io/specification/), making it compatible with a variety of developer tools. - -The [OpenAPI specification file for Stacks](https://github.com/hirosystems/stacks-blockchain-api/blob/master/docs/openapi.yaml) is used to generate the [TypeScript client library](#typescript-client-library). You can use the specification file to generate client libraries for other programming languages using the [openapi-generator tool](https://github.com/OpenAPITools/openapi-generator) - -## TypeScript client library - -A Typescript client library is available for use of the Stacks API. The client library enables type-safe REST and WebSocket communication with the Stacks API endpoints. [Review the client documentation for more details](https://hirosystems.github.io/stacks-blockchain-api/client/index.html). - -The client is made up of three components: - -1. Generated HTTP API client -2. Typescript definitions for [Clarity values](https://docs.stacks.co/docs/write-smart-contracts/values) -3. WebSocket client - -The following sections demonstrate common usages of the TypeScript API client. - -### HTTP API client sample - -The Typescript client library requires you to specify the underlying HTTP request library to handle HTTP communication. The example below uses the universal fetch API [`cross-fetch`](https://github.com/lquixada/cross-fetch): - -```js -import fetch from 'cross-fetch'; -import { Configuration, AccountsApi } from '@stacks/blockchain-api-client'; - -(async () => { - const apiConfig = new Configuration({ - fetchApi: fetch, - // for mainnet, replace `testnet` with `mainnet` - basePath: 'https://api.testnet.hiro.so', // defaults to http://localhost:3999 - }); - - // initiate the /accounts API with the basepath and fetch library - const accountsApi = new AccountsApi(apiConfig); - - // get transactions for a specific account - const txs = await accountsApi.getAccountTransactions({ - principal: 'ST000000000000000000002AMW42H', - }); - - console.log(txs); -})().catch(console.error); -``` - -### TypeScript sample - -The following sample demonstrate how generated [TypeScript models](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client/src/generated/models) can be used for type-safety: - -```ts -import fetch from 'cross-fetch'; -import { - Configuration, - AccountsApi, - AccountsApiInterface, - AddressBalanceResponse, - AddressBalanceResponseStx, -} from '@stacks/blockchain-api-client'; - -(async () => { - const apiConfig: Configuration = new Configuration({ - fetchApi: fetch, - // for mainnet, replace `testnet` with `mainnet` - basePath: 'https://api.testnet.hiro.so', // defaults to http://localhost:3999 - }); - - const principal: string = 'ST000000000000000000002AMW42H'; - - // initiate the /accounts API with the basepath and fetch library - const accountsApi: AccountsApiInterface = new AccountsApi(apiConfig); - - // get balance for a specific account - const balance: AddressBalanceResponse = await accountsApi.getAccountBalance({ - principal, - }); - - // get STX balance details - const stxAmount: AddressBalanceResponseStx = balance.stx; - - console.log(stxAmount); -})().catch(console.error); -``` - -### WebSocket sample - -The WebSocket components enabled you to subscribe to specific updates, enabling a near real-time display of updates on transactions and accounts. - -```js -import { connectWebSocketClient } from '@stacks/blockchain-api-client'; - -const client = await connectWebSocketClient('ws://stacks-node-api.blockstack.org/'); - -const sub = await client.subscribeAddressTransactions(contractCall.txId, event => { - console.log(event); -}); - -await sub.unsubscribe(); -``` - -## Rate limiting - -Rate limiting is only applied to [faucet requests](https://docs.hiro.so/api#tag/Faucets) based on the requested token addresses. - -You can refer to the rate limit for each endpoint in the table below: - -| **Endpoint** | **Rate-Limit (RPM)** | -| ------------------------------------------------------------------------------------------- | --------------------- | -| api.mainnet.hiro.so/extended/
api.hiro.so/extended/
|
500

| -| api.mainnet.hiro.so/rosetta/
api.hiro.so/rosetta/
|
200

| -| api.mainnet.hiro.so/v2/
api.hiro.so/v2/
|
100

| -| api.testnet.hiro.so/extended/
| 100
| -| api.testnet.hiro.so/v2/
| 100
| -| api.testnet.hiro.so/extended/v1/faucets/
| 1
| - -### STX faucet - -The Stacks faucet rate limits depend on the type of request. For stacking requests, a limitation of **1 request per 2 days**. In case of regular Stacks faucet requests, the limits are set to **1 request per minute**. - -## Pagination - -To make API responses more compact, lists returned by the API are paginated. For lists, the response body includes: - -- `limit`: the number of list items return per response -- `offset`: the number of elements to skip (starting from 0) -- `total`: the number of all available list items -- `results`: the array of list items (length of array equals the set limit) - -Here is a sample response: - -```json -{ - "limit": 10, - "offset": 0, - "total": 101922, - "results": [{ - "tx_id": "0x924e0a688664851f5f96b437fabaec19b7542cfcaaf92a97eae43384cacd83d0", - "nonce": 308, - "fee_rate": "0", - "sender_address": "ST39F7SA0AKH7RB363W3NE2DTHD3P32ZHNX2KE7J9", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "on_chain_only", - "block_hash": "0x17ceb3da5f36aab351d6b14f5aa77f85bb6b800b954b2f24c564579f80116d99", - "parent_block_hash": "0xe0d1e8d216a77526ae2ce40294fc77038798a179a6532bb8980d3c2183f58de6", - "block_height": 14461, - "burn_block_time": 1622875042, - "burn_block_time_iso": "2021-06-05T06:37:22.000Z", - "canonical": true, - "tx_index": 0, - "tx_status": "success", - "tx_result": { ... }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 0, - "events": [], - "tx_type": "coinbase", - "coinbase_payload": { ... } - }, - { ... } - ] -} -``` - -Using the `limit` and `offset` properties, you can paginate through the entire list by increasing the offset by the limit until you reach the total. - -## Requesting proofs - -Several endpoints will by default request the [MARF Merkel Proof](https://github.com/stacksgov/sips/blob/main/sips/sip-004/sip-004-materialized-view.md#marf-merkle-proofs). - -Provided with the proof, a client can verify the value, cumulative energy spent, and the number of confirmation for the response value provided by the API. - -Requesting the proof requires more resources (computation time, response time, and response body size). To avoid the additional resources, in case verification is not required, API endpoints allow setting the request parameter: `proof=0`. The returned response object will not have any proof fields. - -## Searching - -The API provides a search endpoint ([`/extended/v1/search/{id}`](https://docs.hiro.so/api#operation/search_by_id)) that takes an identifier and responds with matching blocks, transactions, contracts, or accounts. - -The search operation used by the endpoint (for example, `FROM txs WHERE tx_id = $1 LIMIT 1`) matches hashes **equal** to the provided identifier. Fuzzy search, incomplete identifiers, or wildcards will not return any matches. - -## Using Clarity values - -Some endpoints, like the [read-only function contract call](https://docs.hiro.so/api#operation/call_read_only_function), require input to as serialized [Clarity value](https://docs.stacks.co/docs/write-smart-contracts/values). Other endpoints return serialized values that need to be deserialized. - -Below is an example for Clarity value usage in combination with the API. - -:::info - -The example below is for illustration only. The `@stacks/transactions` library supports typed contract calls and makes [response value utilization much simpler](https://docs.stacks.co/docs/write-smart-contracts/values#utilizing-clarity-values-from-transaction-responses) - -::: - -```ts -import { - Configuration, - SmartContractsApiInterface, - SmartContractsApi, - ReadOnlyFunctionSuccessResponse, -} from '@stacks/blockchain-api-client'; -import { uintCV, UIntCV, cvToHex, hexToCV, ClarityType } from '@stacks/transactions'; - -(async () => { - const apiConfig: Configuration = new Configuration({ - fetchApi: fetch, - // for mainnet, replace `testnet` with `mainnet` - basePath: 'https://api.testnet.hiro.so', // defaults to http://localhost:3999 - }); - - const contractsApi: SmartContractsApiInterface = new SmartContractsApi(apiConfig); - - const principal: string = 'ST000000000000000000002AMW42H'; - - // use most recent from: https://api..hiro.so/v2/pox - const rewardCycle: UIntCV = uintCV(22); - - // call a read-only function - const fnCall: ReadOnlyFunctionSuccessResponse = await contractsApi.callReadOnlyFunction({ - contractAddress: principal, - contractName: 'pox', - functionName: 'is-pox-active', - readOnlyFunctionArgs: { - sender: principal, - arguments: [cvToHex(rewardCycle)], - }, - }); - - console.log({ - status: fnCall.okay, - result: fnCall.result, - representation: hexToCV(fnCall.result).type === ClarityType.BoolTrue, - }); -})().catch(console.error); -``` - -## Error handling - -The API can respond with two different error types: - -- For URLs that don't match any defined endpoint, an HTTP 404 is returned. The body lists the URL in reference (as a string) -- For invalid input values (URL/body parameters), an HTTP 500 is returned. The body is a JSON object with an `error` property. The object also includes stack trace (`stack`) and an error UUID (`errorTag`) - -## Proxied Stacks Node RPC API endpoints - -The Stacks 2.0 Blockchain API is centrally hosted. However, every running Stacks node exposes an RPC API, which allows you to interact with the underlying blockchain. Instead of using a centrally hosted API, you can directly access the RPC API of a locally hosted Node. - -:::note - -The Stacks Blockchain API proxies to Node RPC endpoints - -::: - -While the Node RPC API doesn't give the same functionality as the hosted Stacks 2.0 Blockchain API, you get similar functionality in a way that is scoped to that specific node. The RPC API includes the following endpoints: - -- [POST /v2/transactions](https://docs.hiro.so/api#operation/post_core_node_transactions) -- [GET /v2/contracts/interface/{contract_address}/{contract_name}](https://docs.hiro.so/api#operation/get_contract_interface) -- [POST /v2/map_entry/{contract_address}/{contract_name}/{map_name}](https://docs.hiro.so/api#operation/get_contract_data_map_entry) -- [GET /v2/contracts/source/{contract_address}/{contract_name}](https://docs.hiro.so/api#operation/get_contract_source) -- [GET /v2/accounts/{principal}](https://docs.hiro.so/api#operation/get_account_info) -- [POST /v2/contracts/call-read/{contract_address}/{contract_name}/{function_name}](https://docs.hiro.so/api#operation/call_read_only_function) -- [GET /v2/fees/transfer](https://docs.hiro.so/api#operation/get_fee_transfer) -- [GET /v2/info](https://docs.hiro.so/api#operation/get_core_api_info) - -:::info - -If you run a local node, it exposes an HTTP server on port `20443`. The info endpoint would be `localhost:20443/v2/info`. - -::: - -## Rosetta support - -This API supports [v1.4.6 of the Rosetta specification](https://www.rosetta-api.org/). This industry open standard makes it simple to integrate blockchain deployment and interaction. - -:::info - -Find all Data and Construction Rosetta endpoints [here](https://docs.hiro.so/api#tag/Rosetta) - -::: - -## Microblocks support - -!> API support for microblocks is a work-in-progress. Review the [API documentation][microblocks_api] carefully to -ensure that you are up-to-date on the latest implementation details for microblocks. - -The API allows querying the most recently streamed microblocks: - -```bash -# for mainnet, remove `.testnet` -curl 'https://api.testnet.hiro.so/extended/v1/microblock' -``` - -```json -{ - "limit": 20, - "offset": 0, - "total": 8766, - "results": [ - { - "canonical": true, - "microblock_canonical": true, - "microblock_hash": "0xe6897aab881208185e3fb6ba58d9d9e35c43c68f13fbb892b20cebd39ac69567", - "microblock_sequence": 0, - "microblock_parent_hash": "0xe0d1e8d216a77526ae2ce40294fc77038798a179a6532bb8980d3c2183f58de6", - "parent_index_block_hash": "0x178cd9a37bf38f6b85d9f18e65588e60782753b1463ae080fb9865938b0898ea", - "block_height": 14461, - "parent_block_height": 14460, - "parent_block_hash": "0xe0d1e8d216a77526ae2ce40294fc77038798a179a6532bb8980d3c2183f58de6", - "block_hash": "0x17ceb3da5f36aab351d6b14f5aa77f85bb6b800b954b2f24c564579f80116d99", - "txs": ["0x0622e096dec7e2f6e8f7d95f732e04d238b7381aea8d0aecffae026c53e73e05"] - } - ] -} -``` - -## Nonce handling - -In order to prevent stuck transactions, you must track the next available nonce for principals issuing transactions. The -API provides an endpoint to make nonce handling simpler: - -```bash -# for mainnet, remove `.testnet` -# replace with your STX address -curl 'https://api.testnet.hiro.so/extended/v1/address//nonces' -``` - -```json -{ - "last_executed_tx_nonce": 5893, - "last_mempool_tx_nonce": null, - "possible_next_nonce": 5894, - "detected_missing_nonces": [] -} -``` - -You can use the `possible_next_nonce` property as the nonce for your next transaction. - -## Running an API server - -While Hiro provides a hosted API server of the Stacks Blockchain API, anyone can spin up their own version. Please [follow the instructions in this guide](/get-started/running-api-node) to start a Docker container with the API service running. - -:::info - -Once started, the API is available on `localhost:3999` - -::: - -[microblocks_api]: https://docs.hiro.so/api#tag/Microblocks diff --git a/content/how-to-guides/how-to-run-api-node.md b/content/how-to-guides/how-to-run-api-node.md deleted file mode 100644 index 4c54448747..0000000000 --- a/content/how-to-guides/how-to-run-api-node.md +++ /dev/null @@ -1,317 +0,0 @@ ---- -title: How to Run an API Node ---- - -This guide shows you how to run a local API node using Docker images. There are several components that must be -configured and run in a specific order for the local API node to work. - -Note: the order in which the services are brought up is very important. In order to start the API node -successfully, you need to bring up the services in the following order: - -1. `postgres` -2. `stacks-blockchain-api` -3. `stacks-blockchain` - -When bringing down the API node, you should bring the services down in the reverse order in which they were -brought up in order to avoid losing data. - -:::note - -This guide focuses on Unix-like operating systems (Linux and MacOS). This has not been tested on -Windows. - -::: - -## Prerequisites - -Running a node has no specialized hardware requirements. Users have been successful in running nodes on Raspberry Pi -boards and other system-on-chip architectures. However, in order to complete this guide, you do need the following software -installed on the node host machine: - -- [Docker](https://docs.docker.com/get-docker/) -- [curl](https://curl.se/download.html) -- [psql](http://postgresguide.com/utilities/psql.html) (_installed locally_) -- [jq](https://stedolan.github.io/jq/download/) - -### Firewall configuration - -In order for the API node services to work correctly, you must configure any network firewall rules to allow traffic on -the ports discussed in this section. The details of network and firewall configuration are highly specific to your -machine and network, so a detailed example isn't provided. - -The following ports must open on the host machine: - -Ingress: - -- postgres (open to `localhost` only): - - `5432 TCP` -- stacks-blockchain-api - - `3999 TCP` -- stacks-blockchain (open to `0.0.0.0/0`): - - `20443 TCP` - - `20444 TCP` - -Egress: - -- `8332` -- `8333` -- `20443-20444` - -These egress ports are for syncing the `stacks-blockchain` and Bitcoin headers. If they're not open, the sync will fail. - -## Step 1: Initial setup - -In order to run the API node, you must download the Docker images and create a directory structure to hold the -persistent data from the services. Download and configure the Docker images with the following commands: - -```sh -docker pull blockstack/stacks-blockchain-api && docker pull blockstack/stacks-blockchain && docker pull postgres:alpine -docker network create stacks-blockchain > /dev/null 2>&1 -``` - -Create a directory structure for the service data with the following command: - -```sh -mkdir -p ./stacks-node/{persistent-data/postgres,persistent-data/stacks-blockchain,bns,config} && cd stacks-node -``` - -## Step 2: Running Postgres - -The `postgres:alpine` Docker container can be run with default settings. You must set the password for the user to -`postgres` with the `POSTGRES_PASSWORD` environment variable. The following command starts the image: - -```sh -docker run -d --rm \ - --name postgres \ - --net=stacks-blockchain \ - -e POSTGRES_PASSWORD=postgres \ - -v $(pwd)/persistent-data/postgres:/var/lib/postgresql/data \ - -p 5432:5432 \ - postgres:alpine -``` - -You can verify the running Postgres instance on port `5432` with the command - -```sh -docker ps --filter name=postgres -``` - -## Step 3: Running Stacks blockchain API - -The [`stacks-blockchain-api`][] image requires several environment variables to be set. To reduce the complexity of the -run command, you should create a new `.env` file and add the following to it using a text editor: - -``` -NODE_ENV=production -GIT_TAG=master -PG_HOST=postgres -PG_PORT=5432 -PG_USER=postgres -PG_PASSWORD=postgres -PG_DATABASE=postgres -STACKS_CHAIN_ID=0x00000001 -V2_POX_MIN_AMOUNT_USTX=90000000260 -STACKS_CORE_EVENT_PORT=3700 -STACKS_CORE_EVENT_HOST=0.0.0.0 -STACKS_BLOCKCHAIN_API_PORT=3999 -STACKS_BLOCKCHAIN_API_HOST=0.0.0.0 -STACKS_BLOCKCHAIN_API_DB=pg -STACKS_CORE_RPC_HOST=stacks-blockchain -STACKS_CORE_RPC_PORT=20443 -BNS_IMPORT_DIR=/bns-data -``` - -:::info - -This guide configures the API to import BNS data with the `BNS_IMPORT_DIR` variable. To turn off this import, comment -the line out by placing a `#` at the beginning of the line. If you leave the BNS import enabled, it may take several -minutes for the container to start while it imports the data. - -::: - -The `PG_HOST` and `STACKS_CORE_RPC_HOST` variables define the container names for `postgres` and `stacks-blockchain`. -You may wish to alter those values if you have named those containers differently than this guide. - -Start the [`stacks-blockchain-api`][] image with the following command: - -```sh -docker run -d --rm \ - --name stacks-blockchain-api \ - --net=stacks-blockchain \ - --env-file $(pwd)/.env \ - -v $(pwd)/bns:/bns-data \ - -p 3700:3700 \ - -p 3999:3999 \ - blockstack/stacks-blockchain-api -``` - -You can verify the running `stacks-blockchain-api` container with the command: - -```sh -docker ps --filter name=stacks-blockchain-api -``` - -## Step 4: Running Stacks blockchain - -A usable API instance needs to have data from a running [stacks-blockchain](https://github.com/stacks-network/stacks-blockchain) instance. - -Because we're focusing on running the API with Docker, it also makes things easier if we run the stacks-blockchain-api instance similarly. - -With that in mind, you will need to have the following in your Config.toml - this config block will send blockchain events to the API instance that was started earlier: - -```toml -[[events_observer]] -endpoint = ":3700" -retry_count = 255 -events_keys = ["*"] -``` - -Here is an example `Config.toml` that you can use. Create this file as ./config/Config.toml: - -```toml -[node] -working_dir = "/root/stacks-node/data" -rpc_bind = "0.0.0.0:20443" -p2p_bind = "0.0.0.0:20444" -bootstrap_node = "02196f005965cebe6ddc3901b7b1cc1aa7a88f305bb8c5893456b8f9a605923893@seed.mainnet.hiro.so:20444" -wait_time_for_microblocks = 10000 - -[[events_observer]] -endpoint = "stacks-blockchain-api:3700" -retry_count = 255 -events_keys = ["*"] - -[burnchain] -chain = "bitcoin" -mode = "mainnet" -peer_host = "bitcoin.blockstack.com" -username = "blockstack" -password = "blockstacksystem" -rpc_port = 8332 -peer_port = 8333 - -[connection_options] -read_only_call_limit_write_length = 0 -read_only_call_limit_read_length = 100000 -read_only_call_limit_write_count = 0 -read_only_call_limit_read_count = 30 -read_only_call_limit_runtime = 1000000000 -``` - -The `[[events_observer]]` block configures the instance to send blockchain events to the API container that you -started previously. - -Start the `stacks-blockchain` container with the following command: - -```sh -docker run -d --rm \ - --name stacks-blockchain \ - --net=stacks-blockchain \ - -v $(pwd)/persistent-data/stacks-blockchain:/root/stacks-node/data \ - -v $(pwd)/config:/src/stacks-node \ - -p 20443:20443 \ - -p 20444:20444 \ - blockstack/stacks-blockchain \ -/bin/stacks-node start --config /src/stacks-node/Config.toml -``` - -You can verify the stacks-blockchain instance running on the ports 20443-20444: - -```sh -$ docker ps --filter name=stacks-blockchain$ -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -199e37a324f1 blockstack/stacks-blockchain "/bin/stacks-node st…" 1 minute ago Up 1 minute 0.0.0.0:20443-20444->20443-20444/tcp, :::20443-20444->20443-20444/tcp stacks-blockchain -``` - -## Step 5: Verifying the services - -You can now verify that each of the services is running and talking to the others. - -To verify the database is ready: - -1. Connect to the Postgres instance with the command `psql -h localhost -U postgres`. Use the password from the - `POSTGRES_PASSWORD` environment variable you set when running the container. -2. List current databases with the command `\l` -3. Disconnect from the database with the command `\q` - -To verify that the `stacks-blockchain` tip height is progressing, use the following command: - -```sh -curl -sL localhost:20443/v2/info | jq -``` - -If the instance is running, you should receive terminal output similar to the following: - -```json -{ - "peer_version": 402653184, - "pox_consensus": "89d752034e73ed10d3b97e6bcf3cff53367b4166", - "burn_block_height": 666143, - "stable_pox_consensus": "707f26d9d0d1b4c62881a093c99f9232bc74e744", - "stable_burn_block_height": 666136, - "server_version": "stacks-node 2.0.11.1.0-rc1 (master:67dccdf, release build, linux [x86_64])", - "network_id": 1, - "parent_network_id": 3652501241, - "stacks_tip_height": 61, - "stacks_tip": "e08b2fe3dce36fd6d015c2a839c8eb0885cbe29119c1e2a581f75bc5814bce6f", - "stacks_tip_consensus_hash": "ad9f4cb6155a5b4f5dcb719d0f6bee043038bc63", - "genesis_chainstate_hash": "74237aa39aa50a83de11a4f53e9d3bb7d43461d1de9873f402e5453ae60bc59b", - "unanchored_tip": "74d172df8f8934b468c5b0af2efdefe938e9848772d69bcaeffcfe1d6c6ef041", - "unanchored_seq": 0, - "exit_at_block_height": null -} -``` - -Verify the `stacks-blockchain-api` is receiving data from the `stacks-blockchain` with the following command: - -```sh -curl -sL localhost:3999/v2/info | jq -``` - -If the instance is configured correctly, you should receive terminal output similar to the following: - -```json -{ - "peer_version": 402653184, - "pox_consensus": "e472cadc17dcf3bc1afafc6aa595899e55f25b72", - "burn_block_height": 666144, - "stable_pox_consensus": "6a6fb0aa75a8acd4919f56c9c4c81ce5bc42cac1", - "stable_burn_block_height": 666137, - "server_version": "stacks-node 2.0.11.1.0-rc1 (master:67dccdf, release build, linux [x86_64])", - "network_id": 1, - "parent_network_id": 3652501241, - "stacks_tip_height": 61, - "stacks_tip": "e08b2fe3dce36fd6d015c2a839c8eb0885cbe29119c1e2a581f75bc5814bce6f", - "stacks_tip_consensus_hash": "ad9f4cb6155a5b4f5dcb719d0f6bee043038bc63", - "genesis_chainstate_hash": "74237aa39aa50a83de11a4f53e9d3bb7d43461d1de9873f402e5453ae60bc59b", - "unanchored_tip": "74d172df8f8934b468c5b0af2efdefe938e9848772d69bcaeffcfe1d6c6ef041", - "unanchored_seq": 0, - "exit_at_block_height": null -} -``` - -Once the API is running, you can use it to [interact with other API endpoints][`stacks-blockchain-api`]. - -## Stopping the API node - -As discussed previously, if you want to bring down your API node, you must stop the services in the reverse order that -you started them. Performing the shutdown in this order ensures that you don't lose any data while shutting down -the node. - -Use the following commands to stop the local API node: - -```sh -docker stop stacks-blockchain -docker stop stacks-blockchain-api -docker stop postgres -``` - -## Additional reading - -- [Running an API instance with Docker][] in the `stacks-blockchain-api` repository -- [Running an API instance from source][] in the `stacks-blockchain-api` repository - -[running an api instance with docker]: https://github.com/hirosystems/stacks-blockchain-api/blob/master/running_an_api.md -[running an api instance from source]: https://github.com/hirosystems/stacks-blockchain-api/blob/master/running_api_from_source.md -[`stacks-blockchain`]: https://github.com/blockstack/stacks-blockchain -[`stacks-blockchain-api`]: https://github.com/hirosystems/stacks-blockchain-api diff --git a/content/how-to-guides/how-to-run-mainnet-node.md b/content/how-to-guides/how-to-run-mainnet-node.md deleted file mode 100644 index 6114213652..0000000000 --- a/content/how-to-guides/how-to-run-mainnet-node.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: How to Run a Mainnet Node ---- - -This guide shows you how to run a local mainnet node using Docker images. - -:::note - -This guide focuses on Unix-like operating systems (Linux and MacOS). This has not been tested on -Windows. - -::: - -## Prerequisites - -Running a node has no specialized hardware requirements. Users have been successful in running nodes on Raspberry Pi -boards and other system-on-chip architectures. However, in order to complete this guide, you do need the following software -installed on the node host machine: - -- [Docker](https://docs.docker.com/get-docker/) -- [curl](https://curl.se/download.html) -- [jq](https://stedolan.github.io/jq/download/) - -### Firewall configuration - -In order for the API node services to work correctly, you must configure any network firewall rules to allow traffic on -the ports discussed in this section. The details of network and firewall configuration are highly specific to your -machine and network, so a detailed example isn't provided. - -The following ports must open on the host machine: - -Ingress: - -- stacks-blockchain (open to `0.0.0.0/0`): - - `20443 TCP` - - `20444 TCP` - -Egress: - -- `8332` -- `8333` -- `20443-20444` - -These egress ports are for syncing the `stacks-blockchain` and Bitcoin headers. If they're not open, the sync will fail. - -## Step 1: Initial setup - -In order to run the mainnet node, you must download the Docker images and create a directory structure to hold the -persistent data from the services. Download and configure the Docker images with the following commands: - -```sh -docker pull blockstack/stacks-blockchain -``` - -Create a directory structure for the service data with the following command: - -```sh -mkdir -p ./stacks-node/{persistent-data/stacks-blockchain/mainnet,config/mainnet} && cd stacks-node -``` - -## Step 2: Running Stacks blockchain - -First, create the `./config/Config.toml` file and add the following content to the -file using a text editor: - -```toml -[node] -working_dir = "/root/stacks-node/data" -rpc_bind = "0.0.0.0:20443" -p2p_bind = "0.0.0.0:20444" -bootstrap_node = "02196f005965cebe6ddc3901b7b1cc1aa7a88f305bb8c5893456b8f9a605923893@seed.mainnet.hiro.so:20444" -wait_time_for_microblocks = 10000 - -[burnchain] -chain = "bitcoin" -mode = "mainnet" -peer_host = "bitcoin.blockstack.com" -username = "blockstack" -password = "blockstacksystem" -rpc_port = 8332 -peer_port = 8333 - -[connection_options] -read_only_call_limit_write_length = 0 -read_only_call_limit_read_length = 100000 -read_only_call_limit_write_count = 0 -read_only_call_limit_read_count = 30 -read_only_call_limit_runtime = 1000000000 -``` - -Start the `stacks-blockchain` container with the following command: - -```sh -docker run -d --rm \ - --name stacks-blockchain \ - -v $(pwd)/persistent-data/stacks-blockchain/mainnet:/root/stacks-node/data \ - -v $(pwd)/config/mainnet:/src/stacks-node \ - -p 20443:20443 \ - -p 20444:20444 \ - blockstack/stacks-blockchain \ -/bin/stacks-node start --config /src/stacks-node/Config.toml -``` - -You can verify the running `stacks-blockchain` container with the command: - -```sh -docker ps --filter name=stacks-blockchain -``` - -## Step 3: Verifying the services - -:::info - -The initial header sync can take several minutes, until this is done the following commands will not work. - -::: - -To verify the `stacks-blockchain` burn chain header sync progress: - -```sh -docker logs stacks-blockchain -``` - -The output should be similar to the following: - -``` -INFO [1626290705.886954] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.2% (8000 out of 691034) -INFO [1626290748.103291] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.4% (10000 out of 691034) -INFO [1626290776.956535] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.7% (12000 out of 691034) -``` - -To verify that the `stacks-blockchain` tip height is progressing, use the following command: - -```sh -curl -sL localhost:20443/v2/info | jq -``` - -If the instance is running, you should receive terminal output similar to the following: - -```json -{ - "peer_version": 402653184, - "pox_consensus": "89d752034e73ed10d3b97e6bcf3cff53367b4166", - "burn_block_height": 666143, - "stable_pox_consensus": "707f26d9d0d1b4c62881a093c99f9232bc74e744", - "stable_burn_block_height": 666136, - "server_version": "stacks-node 2.0.11.1.0-rc1 (master:67dccdf, release build, linux [x86_64])", - "network_id": 1, - "parent_network_id": 3652501241, - "stacks_tip_height": 61, - "stacks_tip": "e08b2fe3dce36fd6d015c2a839c8eb0885cbe29119c1e2a581f75bc5814bce6f", - "stacks_tip_consensus_hash": "ad9f4cb6155a5b4f5dcb719d0f6bee043038bc63", - "genesis_chainstate_hash": "74237aa39aa50a83de11a4f53e9d3bb7d43461d1de9873f402e5453ae60bc59b", - "unanchored_tip": "74d172df8f8934b468c5b0af2efdefe938e9848772d69bcaeffcfe1d6c6ef041", - "unanchored_seq": 0, - "exit_at_block_height": null -} -``` - -## Stopping the mainnet node - -Use the following commands to stop the local mainnet node: - -```sh -docker stop stacks-blockchain -``` - -## Additional reading - -- [Running an API instance with Docker][] - -[running a testnet node with docker]: /get-started/running-testnet-node -[running an api instance with docker]: /get-started/running-api-node -[`stacks-blockchain`]: https://github.com/blockstack/stacks-blockchain diff --git a/content/how-to-guides/how-to-run-stacks-blockchain-api-docker.md b/content/how-to-guides/how-to-run-stacks-blockchain-api-docker.md deleted file mode 100644 index 686c3319b5..0000000000 --- a/content/how-to-guides/how-to-run-stacks-blockchain-api-docker.md +++ /dev/null @@ -1,332 +0,0 @@ ---- -Title: Run a Stacks Blockchain API instance with Docker ---- - -# Run a Stacks Blockchain API instance with Docker - -> **_NOTE:_** -> -> For a faster way to deploy the Stacks Blockchain and Stacks Blockchain API with Docker, see the [Stacks Blockchain Docker](https://github.com/stacks-network/stacks-blockchain-docker) repository. - -On this page, you will learn how to run a [stacks-blockchain-api](https://github.com/hirosystems/stacks-blockchain-api) instance. There are several components involved here to have a working setup, and descriptions will be given for each of these components. - -This page will also focus on the **easy** path to get the services running, which is currently Docker. - -Please note that the following guide is meant for a Unix-like OS (Linux/MacOS). The commands *may* work on Windows but will likely need some adjustments. - -- [Run a Stacks Blockchain API instance with Docker](#run-a-stacks-blockchain-api-instance-with-docker) - - [Requirements](#requirements) - - [Firewalling](#firewalling) - - [Initial Setup](#initial-setup) - - [Postgres](#postgres) - - [Starting postgres](#starting-postgres) - - [Stopping Postgres](#stopping-postgres) - - [Stacks Blockchain API](#stacks-blockchain-api) - - [Starting stacks-blockchain-api](#starting-stacks-blockchain-api) - - [Stopping stacks-blockchain-api](#stopping-stacks-blockchain-api) - - [Stacks Blockchain](#stacks-blockchain) - - [Starting stacks-blockchain](#starting-stacks-blockchain) - - [Stopping stacks-blockchain](#stopping-stacks-blockchain) - - [Verify Everything is running correctly](#verify-everything-is-running-correctly) - - [Postgres testing](#postgres-testing) - - [stacks-blockchain testing](#stacks-blockchain-testing) - - [stacks-blockchain-api testing](#stacks-blockchain-api-testing) - -## Requirements - -1. [Docker](https://docs.docker.com/engine/install/) -2. `bash` or some other Unix-like shell (i.e. `zsh`) -3. `curl` binary - -**Note:** The order of operations here is important. - -Essentially, to start the API successfully you will want to perform the following steps **in order**: - -1. [start postgres](#starting-postgres) -2. [start stacks-blockchain-api](#starting-stacks-blockchain-api) -3. [start stacks-blockchain](#starting-stacks-blockchain) - -Conversely, to bring down the API and *NOT* lose any data, perform the same steps **in Reverse**: - -1. [stop stacks-blockchain](#stopping-stacks-blockchain) -2. [stop stacks-blockchain-api](#stopping-stacks-blockchain-api) -3. [stop postgres](#stopping-postgres) - -### Firewalling - -In order for the services to work correctly, the host will need some ports open. - -**Default Ingress Ports**: - -- postgres (*open to `localhost` only*): - - `5432 TCP` -- stacks-blockchain (*open to `0.0.0.0/0`*): - - `20443 TCP` - - `20444 TCP` -- stacks-blockchain-api (*open to where you want to access the api from*): - - `3999 TCP` - -**Default Egress Ports**: - -The only egress ports you will need (outside of what you need normally to install/update packages) are: - -- `8332` -- `8333` -- `20443-20444` - -These are the ports used to sync the stacks-blockchain and the bitcoin headers. If they are not open, the sync **will** fail. - -### Initial Setup - -Since you will need to create some files/dirs for persistent data, you must first create a base directory structure and download the docker images. - -You should use the following command: - -```bash -$ mkdir -p ./stacks-node/{persistent-data/postgres,persistent-data/stacks-blockchain,config} -$ docker pull blockstack/stacks-blockchain-api \ - && docker pull blockstack/stacks-blockchain \ - && docker pull postgres:alpine -$ docker network create stacks-blockchain > /dev/null 2>&1 -$ cd ./stacks-node -``` - -## Postgres - -The `postgres:alpine` image can be run with default settings, the only requirement is that a password Environment -Variable is set for the `postgres` user: `POSTGRES_PASSWORD=postgres` - -### Starting postgres - -```bash -docker run -d --rm \ - --name postgres \ - --net=stacks-blockchain \ - -e POSTGRES_PASSWORD=postgres \ - -v $(pwd)/persistent-data/postgres:/var/lib/postgresql/data \ - -p 5432:5432 \ - postgres:alpine -``` - -There should now be a running postgres instance running on port `5432`: - -```bash -$ docker ps --filter name=postgres -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -f835f3a8cfd4 postgres:alpine "docker-entrypoint.s…" 1 minute ago Up 1 minute 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres -``` - -### Stopping Postgres - -To stop the postgres service (this will also remove the container, but not the data), run the following command: - -```bash -$ docker stop postgres -``` - -## Stacks Blockchain API - -The Stacks Blockchain API requires you to set several environment variables in order to run properly. -To reduce complexity, create a `.env` file that you will use for these environment variables. - -Create a new file: `./.env` with the following content: - -```none -NODE_ENV=production -GIT_TAG=master -PG_HOST=postgres -PG_PORT=5432 -PG_USER=postgres -PG_PASSWORD=postgres -PG_DATABASE=postgres -STACKS_CHAIN_ID=0x00000001 -V2_POX_MIN_AMOUNT_USTX=90000000260 -STACKS_CORE_EVENT_PORT=3700 -STACKS_CORE_EVENT_HOST=0.0.0.0 -STACKS_BLOCKCHAIN_API_PORT=3999 -STACKS_BLOCKCHAIN_API_HOST=0.0.0.0 -STACKS_CORE_RPC_HOST=stacks-blockchain -STACKS_CORE_RPC_PORT=20443 -API_DOCS_URL=https://docs.hiro.so/api -``` - -The other environment variables to pay attention to are: - -- `PG_HOST`: Set this to your **postgres** instance. In this guide, we'll be using a container named `postgres`. -- `STACKS_CORE_RPC_HOST`: Set this to your **stacks blockchain** node. In this guide, we'll be using a container named `stacks-blockchain`. -- `API_DOCS_URL`: Set this to enable your docs API http://localhost:3999/doc. - -### Starting stacks-blockchain-api - -Run the following command to run Stacks Blockchain API: - -```bash -docker run -d --rm \ - --name stacks-blockchain-api \ - --net=stacks-blockchain \ - --env-file $(pwd)/.env \ - -p 3700:3700 \ - -p 3999:3999 \ - blockstack/stacks-blockchain-api -``` - -You shoudl now have a running stacks-blockchain-api instance running on ports `3999` and `3700`: - -```bash -e$ docker ps --filter name=stacks-blockchain-api -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -a86a26da6c5a blockstack/stacks-blockchain-api "docker-entrypoint.s…" 1 minute ago Up 1 minute 0.0.0.0:3700->3700/tcp, :::3700->3700/tcp, 0.0.0.0:3999->3999/tcp, :::3999->3999/tcp stacks-blockchain-api -``` - - > **_NOTE:_** - > - > On initial sync, it will take several minutes for port `3999` to become available. - -### Stopping stacks-blockchain-api - -To stop the stacks-blockchain-api service (this will also remove the container), run the following command: - -```bash -$ docker stop stacks-blockchain-api -``` - -## Stacks Blockchain - -In order to have a **usable** API instance, you need to have data from a running [stacks-blockchain](https://github.com/blockstack/stacks-blockchain) instance. - -Because the focus is on running the API with Docker, it also makes things easier if you also run the stacks-blockchain instance the same way. - -With that in mind, you will need to have the following configuration in your `Config.toml`. This configuration block will send blockchain events to the API instance that was previously started: - -```toml -[[events_observer]] -endpoint = ":3700" -retry_count = 255 -events_keys = ["*"] -``` - -Here is an example `Config.toml` that you can use - create this file as `./config/mainnet/Config.toml`: - -```toml -[node] -working_dir = "/root/stacks-node/data" -rpc_bind = "0.0.0.0:20443" -p2p_bind = "0.0.0.0:20444" -bootstrap_node = "02196f005965cebe6ddc3901b7b1cc1aa7a88f305bb8c5893456b8f9a605923893@seed.mainnet.hiro.so:20444" -wait_time_for_microblocks = 10000 - -[[events_observer]] -endpoint = "stacks-blockchain-api:3700" -retry_count = 255 -events_keys = ["*"] - -[burnchain] -chain = "bitcoin" -mode = "mainnet" -peer_host = "bitcoin.blockstack.com" -username = "blockstack" -password = "blockstacksystem" -rpc_port = 8332 -peer_port = 8333 - -[connection_options] -read_only_call_limit_write_length = 0 -read_only_call_limit_read_length = 100000 -read_only_call_limit_write_count = 0 -read_only_call_limit_read_count = 30 -read_only_call_limit_runtime = 1000000000 -``` - -### Starting stacks-blockchain - -```bash -docker run -d --rm \ - --name stacks-blockchain \ - --net=stacks-blockchain \ - -v $(pwd)/persistent-data/stacks-blockchain:/root/stacks-node/data \ - -v $(pwd)/config:/src/stacks-node \ - -p 20443:20443 \ - -p 20444:20444 \ - blockstack/stacks-blockchain \ -/bin/stacks-node start --config /src/stacks-node/Config.toml -``` - -You should now see a running stacks-blockchain instance running on ports `20443-20444`: - -```bash -$ docker ps --filter name=stacks-blockchain$ -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -199e37a324f1 blockstack/stacks-blockchain "/bin/stacks-node st…" 1 minute ago Up 1 minute 0.0.0.0:20443-20444->20443-20444/tcp, :::20443-20444->20443-20444/tcp stacks-blockchain -``` - -### Stopping stacks-blockchain - -To stop the stacks-blockchain service (this will also remove the container, but not the data), run the following command: - -```bash -$ docker stop stacks-blockchain -``` - -## Verify Everything is running correctly - -### Postgres testing - -To verfiy the database is ready: - -1. Connect to the DB instance: `psql -h localhost -U postgres` - - *this will require a locally installed postgresql client* - - use the password from the [Environment Variable](#postgres) `POSTGRES_PASSWORD` -2. List current databases: `\l` -3. Disconnect from the DB : `\q` - -### stacks-blockchain testing - -Verify the stacks-blockchain tip height is progressing: - -```bash -$ curl -sL localhost:20443/v2/info | jq -{ - "peer_version": 402653184, - "pox_consensus": "89d752034e73ed10d3b97e6bcf3cff53367b4166", - "burn_block_height": 666143, - "stable_pox_consensus": "707f26d9d0d1b4c62881a093c99f9232bc74e744", - "stable_burn_block_height": 666136, - "server_version": "stacks-node 2.0.11.1.0-rc1 (master:67dccdf, release build, linux [x86_64])", - "network_id": 1, - "parent_network_id": 3652501241, - "stacks_tip_height": 61, - "stacks_tip": "e08b2fe3dce36fd6d015c2a839c8eb0885cbe29119c1e2a581f75bc5814bce6f", - "stacks_tip_consensus_hash": "ad9f4cb6155a5b4f5dcb719d0f6bee043038bc63", - "genesis_chainstate_hash": "74237aa39aa50a83de11a4f53e9d3bb7d43461d1de9873f402e5453ae60bc59b", - "unanchored_tip": "74d172df8f8934b468c5b0af2efdefe938e9848772d69bcaeffcfe1d6c6ef041", - "unanchored_seq": 0, - "exit_at_block_height": null -} -``` - -### stacks-blockchain-api testing - -Verify the stacks-blockchain-api is receiving data from the stacks-blockchain: - -```bash -$ curl -sL localhost:3999/v2/info | jq -{ - "peer_version": 402653184, - "pox_consensus": "e472cadc17dcf3bc1afafc6aa595899e55f25b72", - "burn_block_height": 666144, - "stable_pox_consensus": "6a6fb0aa75a8acd4919f56c9c4c81ce5bc42cac1", - "stable_burn_block_height": 666137, - "server_version": "stacks-node 2.0.11.1.0-rc1 (master:67dccdf, release build, linux [x86_64])", - "network_id": 1, - "parent_network_id": 3652501241, - "stacks_tip_height": 61, - "stacks_tip": "e08b2fe3dce36fd6d015c2a839c8eb0885cbe29119c1e2a581f75bc5814bce6f", - "stacks_tip_consensus_hash": "ad9f4cb6155a5b4f5dcb719d0f6bee043038bc63", - "genesis_chainstate_hash": "74237aa39aa50a83de11a4f53e9d3bb7d43461d1de9873f402e5453ae60bc59b", - "unanchored_tip": "74d172df8f8934b468c5b0af2efdefe938e9848772d69bcaeffcfe1d6c6ef041", - "unanchored_seq": 0, - "exit_at_block_height": null -} -``` - -Now that everything is running, you can [try some of these other API endpoints](https://hirosystems.github.io/stacks-blockchain-api/) diff --git a/content/how-to-guides/how-to-run-testnet-node.md b/content/how-to-guides/how-to-run-testnet-node.md deleted file mode 100644 index d1db09ee7c..0000000000 --- a/content/how-to-guides/how-to-run-testnet-node.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: How to Run a Testnet Node ---- - -This guide shows you how to run a local testnet node using Docker images. - -:::note - -This guide focuses on Unix-like operating systems (Linux and MacOS). This has not been tested on -Windows. - -::: - -## Prerequisites - -Running a node has no specialized hardware requirements. Users have been successful in running nodes on Raspberry Pi -boards and other system-on-chip architectures. However, in order to complete this procedure, you do need the following software -installed on the node host machine: - -- [Docker](https://docs.docker.com/get-docker/) -- [curl](https://curl.se/download.html) -- [jq](https://stedolan.github.io/jq/download/) - -### Firewall configuration - -In order for the API node services to work correctly, you must configure any network firewall rules to allow traffic on -the ports discussed in this section. The details of network and firewall configuration are highly specific to your -machine and network, so a detailed example isn't provided. - -The following ports must open on the host machine: - -Ingress: - -- stacks-blockchain (open to `0.0.0.0/0`): - - `20443 TCP` - - `20444 TCP` - -Egress: - -- `18332` -- `18333` -- `20443-20444` - -These egress ports are for syncing `stacks-blockchain` and Bitcoin headers. If they're not open, the sync will fail. - -## Step 1: Initial setup - -In order to run a testnet node, you must download the Docker images and create a directory structure to hold the -persistent data from the services. Download and configure the Docker images with the following commands: - -```sh -docker pull blockstack/stacks-blockchain -``` - -Create a directory structure for the service data with the following command: - -```sh -mkdir -p ./stacks-node/persistent-data/stacks-blockchain/testnet && cd stacks-node -``` - -## Step 2: Running Stacks blockchain - -Start the `stacks-blockchain` container with the following command: - -```sh -docker run -d --rm \ - --name stacks-blockchain \ - -v $(pwd)/persistent-data/stacks-blockchain/testnet:/root/stacks-node/data \ - -p 20443:20443 \ - -p 20444:20444 \ - blockstack/stacks-blockchain \ -/bin/stacks-node xenon -``` - -You can verify that the container `stacks-blockchain` is running with the command: - -```sh -docker ps --filter name=stacks-blockchain -``` - -## Step 3: Verifying the services - -:::info - -The initial header sync can take several minutes, until this is done the following commands will not work. - -::: - -To verify the `stacks-blockchain` burn chain header sync progress: - -```sh -docker logs stacks-blockchain -``` - -The output should be similar to the following: - -``` -INFO [1626290705.886954] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.2% (8000 out of 2034380) -INFO [1626290748.103291] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.4% (10000 out of 2034380) -INFO [1626290776.956535] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.7% (12000 out of 2034380) -``` - -To verify that the `stacks-blockchain` tip height is progressing, use the following command: - -```sh -curl -sL localhost:20443/v2/info | jq -``` - -If the instance is running, you should receive terminal output similar to the following: - -```json -{ - "peer_version": 4207599105, - "pox_consensus": "12f7fa85e5099755a00b7eaecded1aa27af61748", - "burn_block_height": 2034380, - "stable_pox_consensus": "5cc4e0403ff6a1a4bd17dae9600c7c13d0b10bdf", - "stable_burn_block_height": 2034373, - "server_version": "stacks-node 2.0.11.2.0-rc1 (develop:7b6d3ee+, release build, linux [x86_64])", - "network_id": 2147483648, - "parent_network_id": 118034699, - "stacks_tip_height": 509, - "stacks_tip": "e0ee952e9891709d196080ca638ad07e6146d4c362e6afe4bb46f42d5fe584e8", - "stacks_tip_consensus_hash": "12f7fa85e5099755a00b7eaecded1aa27af61748", - "genesis_chainstate_hash": "74237aa39aa50a83de11a4f53e9d3bb7d43461d1de9873f402e5453ae60bc59b", - "unanchored_tip": "32bc86590f11504f17904ee7f5cb05bcf71a68a35f0bb3bc2d31aca726090842", - "unanchored_seq": 0, - "exit_at_block_height": null -} -``` - -## Stopping the testnet node - -Use the following command to stop the local testnet node: - -```sh -docker stop stacks-blockchain -``` - -## Additional reading - -- [Running an API instance with Docker][] - -[running a mainnet node with docker]: /get-started/running-mainnet-node -[running an api instance with docker]: /get-started/running-api-node -[`stacks-blockchain`]: https://github.com/blockstack/stacks-blockchain diff --git a/content/how-to-guides/how-to-upgrade-stacks-blockchain-api.md b/content/how-to-guides/how-to-upgrade-stacks-blockchain-api.md deleted file mode 100644 index cf390cd6c7..0000000000 --- a/content/how-to-guides/how-to-upgrade-stacks-blockchain-api.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -Title: Upgrade Stacks Blockchain API version ---- - -# Upgrade Stacks Blockchain API version - -Over time, the Stacks Blockchain API may be updated to a newer version, providing you additonal features and benefits not available in previous versions. When a new API version is released, you may want to upgrade the Stacks Blockchain API version to this new, stable version. - -The process to upgrade the API version is descibed below. - -# Upgrading the API Version - -> **_NOTE:_** -> -> If you choose to upgrade the Stacks Blockchain API to a new major version (for example, 3.0.0 to 4.0.0), then the Postgres database from the previous version will not be compatible and the upgrade process will fail to start. - -When upgrading the API version, you must use Event Replay. Failure to do so will require wiping both the Stacks Blockchain chainstate data and the API Postgres database, and then re-syncing from scratch. - -## Event Replay - -The stacks-node is only able to emit events live as they happen. This poses a problem in the scenario where the stacks-blockchain-api needs to be upgraded and its database cannot be migrated to a new schema. One way to handle this upgrade is to wipe the stacks-blockchain-api's database and stacks-node working directory, and re-sync from scratch. - -Alternatively, an event-replay feature is available where the API records the HTTP `POST` requests from the stacks-node event emitter, then streams these events back to itself. This essentially simulaties a wipe and full re-sync, although this is much faster. - -The Event Replay feature can be used via program args. For example, if there are breaking changes in the API's SQL schema, such as adding a new column which requires events to be re-played, the steps described below can be run. - -### Event Replay Instructions - -#### V1 BNS Data - -This process is optional, but recommended. If you want to retrieve the V1 BNS data, there will be a few extra steps you need to perform. - -1. Download BNS data using the command below. - -`curl -L https://storage.googleapis.com/blockstack-v1-migration-data/export-data.tar.gz -o /stacks-node/bns/export-data.tar.gz` - -2. Extract the data by entering the command below. - -`tar -xzvf ./bns/export-data.tar.gz -C /stacks-node/bns/` - -3. Each file in `./bns` will have a corresponding sha256 value. To verify the sha256 sum value, run the following script: - -```for file in `ls /stacks-node/bns/* | grep -v sha256 | grep -v .tar.gz`; do - if [ $(sha256sum $file | awk {'print $1'}) == $(cat ${file}.sha256 ) ]; then - echo "sha256 Matched $file" - else - echo "sha256 Mismatch $file" - fi -done``` - -4. Set the data's location as the value of `BNS_IMPORT_DIR` in your `.env` file. - -#### Export and Import - -To export and/or import event data, follow the steps listed below. - -1. Ensure the API process is not running. When stopping the API, let the process exit gracefully so that any in-progress SQL writes can finish. - -2. Export event data to disk with the export-events command: - -`node ./lib/index.js export-events --file /tmp/stacks-node-events.tsv` - -3. Update the API version to the new stacks-blockchain-api version. - -4. Perform the event playback using the `import-events` command. - -**WARNING**: This action will drop all tables from the configured Postgres database, including any tables not automatically added by the API. - -`node ./lib/index.js import-events --file /tmp/stacks-node-events.tsv --wipe-db --force` - -This command has two modes of operation, specified by the `--mode` option: - -- **archival (default)**: The process will import and ingest all blockchain events that have happened since the first block. -- **pruned**: The import process will ignore some prunable events (mempool, microblocks) until the import block height has reached `chain tip - 256` blocks. This saves a considerable amount of time during import, but sacrifices some historical data. You can use this mode if you are mostly interested in running an API version that prioritizes real-time information. - -Alternatively, instead of performing the `export-events` command in step 1, an environmental variable can be set which enables events to be streamed to a file as they are received, while the application is running normally. To enable this feature, set the `STACKS_EXPORT_EVENTS_FILE` environment variable to the file path where events should be appended. - -For example: - -`STACKS_EXPORT_EVENTS_FILE=/tmp/stacks-node-events.tsv` diff --git a/content/images/api-architecture.png b/content/images/api-architecture.png deleted file mode 100644 index abe12ba8ed5803f69635751e3de51ca096f641fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327945 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%0AWL@VpPGwANKlC=cxtwSA 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
Nw14B9f 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 **_NOTE:_** -> -> To explore the detailed documentation for the API endpoints, request and response formats, you can refer to the [OpenAPI specification](https://docs.hiro.so/api). -> -> The source code for this project is available in our [GitHub repository](https://github.com/hirosystems/stacks-blockchain-api). You can explore the codebase, [contribute](https://docs.hiro.so/contributors-guide), and raise [issues](https://github.com/hirosystems/stacks-blockchain-api/issues) or [pull requests](https://github.com/hirosystems/stacks-blockchain-api/pulls). - -## Architecture - -![API architecture!](images/api-architecture.png) - -* The `stacks-node` has its own minimal set of http endpoints referred to as `RPC endpoints` - * The `stacks-blockchain-api` allows clients to access these endpoints by proxying them through to a load-balanced pool of `stacks-nodes`. - * See: https://github.com/blockstack/stacks-blockchain/blob/master/docs/rpc-endpoints.md -- some common ones: - * `POST /v2/transactions` - broadcast a transaction. - * `GET /v2/pox` - get current PoX-relevant information. - * `POST /v2/contracts/call-read//` - evaluate and return the result of calling a Clarity function. - * `POST /v2/fees/transaction` - evaluate a given transaction and return transaction fee estimation data. - * `GET /v2/accounts/

` - get the current `nonce` required for creating transactions. - - -* The endpoints implemented by `stacks-blockchain-api` provide data that the `stacks-node` can't due to various constraints. - * Typically this is either data that the `stacks-node` doesn't persist, or data that it cannot efficiently serve to many clients. - For example, the `stacks-node` can return the current STX balance of an account, but it can't return a history of account transactions. - * The API also implements the Rosetta spec created by Coinbase -- "an open standard designed to simplify blockchain deployment and interaction." - * See: https://www.rosetta-api.org/ - * The API also implements the BNS (Blockchain Naming System) endpoints. - * See https://docs.stacks.co/build-apps/references/bns - * See `/src/api/routes` for the Express.js routes. - - -* The API creates an "event observer" http server which listens for events from a `stacks-node` "event emitter" - * These events are http POST requests that contain things like blocks, transactions, byproducts of executed transactions. - * Transaction "byproducts" are things like asset transfers, smart-contract log data, execution cost data. - * The API processes and stores these as relational data in postgres. - * See `/src/event-stream` for the "event observer" code. - - -* All http endpoints and responses are defined in OpenAPI and JSON Schema. - * See `/docs/openapi.yaml` - * These are used to auto generate the docs at https://hirosystems.github.io/stacks-blockchain-api/ - * The JSON Schemas are converted into Typescript interfaces, which are used internally by the db controller module to transform SQL query results into the correct object shapes. - * ALSO the OpenAPI + JSONSchemas are used to generate a standalone `@stacks/blockchain-api-client`. - - -* The easiest/quickest way to develop in this repo is using the VS Code debugger. It uses docker-compose to setup a `stacks-node` and Postgres instance. - * Alternatively, you can run `npm run dev:integrated` which does the same thing but without a debugger. - - diff --git a/content/troubleshooting.md b/content/troubleshooting.md deleted file mode 100644 index 540daa09f9..0000000000 --- a/content/troubleshooting.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -Title: Troubleshooting ---- - -# Troubleshooting - -## I need help retrieving the requested information from an API endpoint. - -As a first step, examine the HTTP response codes returned by the API call. The following are the classification groups: - -- HTTP 2xx - Typically expected behavior ie; the API is responding as expected. Consider caching all or part of the response to reduce retrieval times in the future. -- HTTP 3xx - Redirecting; In this case, the client should be programmed to retry the call with the redirected URL or terminate the execution. -- HTTP 4xx - Client errors; This usually signifies a malformed request (for example - attempting to access a resource that has access restrictions or does not exist) -- HTTP 5xx - Server error; These typically signal an issue with the backend infrastructure. - -In all cases, ensure that you log any erroneous debugging responses. Your application may be attempting to utilize deprecated endpoints, which can lead to the failure of the request. You must update these operations to use a different endpoint as soon as possible. To stay updated with deprecation events, subscribe to the [developer newsletter](https://www.hiro.so/updates). - -Additionally, [Discord](https://discord.gg/pPwMzMx9k8) and [StackOverflow](https://stackoverflow.com/questions/tagged/stacks-blockchain+or+clarity-lang) are great resources for sharing knowledge and getting your questions addressed through the community. - -## I'm hitting rate limits with API Calls - -Hiro's Public Stacks API calls [are rate-limited](https://docs.hiro.so/stacks-blockchain-api/feature-guides/rate-limiting) to ensure high availability of the API and prevent abuse by a single or specific group of clients. - -While increasing limits may only be feasible to be fair to some users, clients can employ various techniques to adapt to the rate limit. One example is using an [exponential back-off strategy](https://learn.microsoft.com/en-us/azure/architecture/patterns/retry), which repeatedly retries the operation when hitting a rate limit. However, the time between each retry increases exponentially so that over a more extended period, the rate of requests adapts to the rate limit. - -Caching API responses can also be handy, as not all information is updated frequently and can be stored locally to reduce API traffic. Depending on the use case, there may be multiple options to achieve this. For example, a client-side cache can be created/refreshed based on a combination of the following: - -- Weight - Retain an item longer the more frequently it is accessed. -- Time - Let the cached item expire after a specific time interval - call the API the next time this item is required. -- On-Chain Events - If your application tracks on-chain events, some additional ways to build the cache would be based on block height, successful execution of a function/contract, etc. - -Finally, more mature development projects can consider [running their own instances of the API](https://docs.hiro.so/get-started/running-api-node).