Skip to content

Commit

Permalink
Update rpc doc
Browse files Browse the repository at this point in the history
  • Loading branch information
zlacfzy committed Sep 25, 2024
1 parent 8148072 commit 3e08e26
Show file tree
Hide file tree
Showing 7 changed files with 103 additions and 111 deletions.
45 changes: 0 additions & 45 deletions docs/bnb-smart-chain/developers/json_rpc/blob-api.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
---
title: Finality API - BSC Develop
title: Bsc API List- BSC Develop
---

## Finality API
Finality is a crucial aspect of blockchain security, ensuring that once a block is confirmed, it cannot be reversed or altered. This provides users with the confidence to act on the information in the block without delay.

## Probabilistic Finality and Economic Finality
### Probabilistic Finality and Economic Finality

In probabilistic finality, the deeper a block is buried in the chain, the lower the likelihood of it being reverted. The more blocks follow a particular block, the more likely the chain containing that block will be the longest. **Typically, BSC users should wait for at least 11 or 15 different validators to seal a block. If validators are allowed to produce multiple consecutive blocks, the number of blocks required to achieve probabilistic finality is approximately 11\*n or 15\*n, where "n" is the number of consecutive blocks produced.**

Economic Finality refers to the high cost associated with reverting a block. In proof-of-stake systems that use a slashing mechanism (such as Casper FFG, Tendermint, or BSC Fast Finality), if validators violate the voting rules, part or all of their stake can be forfeited. This economic penalty makes it extremely expensive to undermine finality. Generally, block n achieves economic finality by block n+2, meaning that BSC Fast Finality reduces the confirmation time to two blocks in most cases. This improves the user experience by making transaction confirmation faster and more reliable.

## Economic Finality API
### Economic Finality API

### [eth_getHeaderByNumber](<https://www.quicknode.com/docs/kaia/eth_getHeaderByNumber>) as in the Ethereum client.
**Parameters**
Expand Down Expand Up @@ -57,7 +58,7 @@ This will return block hashes:
{"jsonrpc":"2.0","id":1,"result":["0x4b52061726b9f15905217699fd5dab8ff9bb704b3b16d27c34541cb15752a91f","0x2b984b80b25f0dddc92ba11290a3d250fc8a3ec6a09bd485c21dbbb8155d2f90"]}
```

## Combined Probabilistic Finality and Economic Finality API
### Combined Probabilistic Finality and Economic Finality API

These methods allow you to handle block finality using a straightforward API.

Expand All @@ -81,3 +82,90 @@ curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --dat
curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getFinalizedBlock","params":[15, true],"id":1}'
```

## Blob API

### eth_getBlobSidecarByTxHash
**Parameters**

**Hash** String (REQUIRED)

* HEX String - the hash of the transaction

**full_blob_flag** Boolean (OPTIONAL)

* Default is true. If ture it returns the full blob info, if false only return first 32 bytes of blobs.

```
curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlobSidecarByTxHash","params":["0x377d3615d2e76f4dcc0c9a1674d2f5487cba7644192e7a4a5af9fe5f08b60a63"],"id":1}'
curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlobSidecarByTxHash","params":["0x377d3615d2e76f4dcc0c9a1674d2f5487cba7644192e7a4a5af9fe5f08b60a63", false],"id":1}'
```

### eth_getBlobSidecars
**Parameters**

**BlockNumber** QUANTITY|TAG

* HEX String - an integer block number
* HEX String - the hash of the block
* String "earliest" for the earliest/genesis block
* String "latest" - for the latest mined block
* String "safe" - for the latest justified head block
* String "finalized" - for the latest finalized block

**full_blob_flag** Boolean (OPTIONAL)

* Default is true. If ture it returns the full blob info, if false only return first 32 bytes of blobs.

```
curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlobSidecars","params":["latest"],"id":1}'
curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlobSidecarByTxHash","params":["0xc5043f", false],"id":1}'
```



## Others

### eth_health

* a health check endpoint to detect whether the RPC func of a node is ok. Return true is ok, false is no health.


```
curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_health","params":[],"id":1}'
```

### eth_getTransactionsByBlockNumber

* get all the transactions for the given block number.

**Parameters**

**BlockNumber** QUANTITY|TAG

* HEX String - an integer block number
* String "earliest" for the earliest/genesis block
* String "latest" - for the latest mined block
* String "safe" - for the latest justified head block
* String "finalized" - for the latest finalized block

```
curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getTransactionsByBlockNumber","params":["0x539492"],"id":1}'
```


### eth_getTransactionDataAndReceipt

* get the original transaction data and transaction receipt for the given transaction hash.

**Parameters**

**Hash** String (REQUIRED)

* HEX String - the hash of the transaction

```
curl -X POST "http://localhost:8545/" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getTransactionDataAndReceipt","params":["0x516a2ab1506b020e7f49d0d0ddbc471065624d1a603087262cebf4ca114ff588"],"id":1}'
```
49 changes: 0 additions & 49 deletions docs/bnb-smart-chain/developers/json_rpc/bsc-api.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: JSON-RPC - BSC Develop
title: JSON-RPC-Endpoint - BSC Develop
---


# JSON-RPC
# JSON-RPC-Endpoint

JSON-RPC endpoints refers to the network location where a program could transfer its RPC requests to access server data. Once you connect a decentralized application to an RPC endpoint, you can access the functionalities of different operations, which could enable real-time usage of blockchain data. BNB Chain provides several RPC endpoints for connectinto both its Minent and Testnet. In this section, we list the JSON-RPC endpoints that can be used for connecting to BNB Smart Chain.

Expand Down Expand Up @@ -89,12 +89,12 @@ BSC is nearly fully compatible with the Geth APIs. Any exceptions or incompatibi

Ethereum's PoS consensus protocol, known as "Gasper," is built on LMD-GHOST (a fork choice rule) and Casper FFG (a finality gadget). Similarly, BSC's consensus protocol, called "Parlia," is constructed on top of a difficulty-based fork choice mechanism with FFG, as described in [BEP-126](https://github.com/bnb-chain/BEPs/blob/master/BEPs/BEP126.md). To further enhance BSC's throughput, validators are allowed to produce multiple consecutive blocks, as explained in [BEP-341](https://github.com/bnb-chain/BEPs/blob/master/BEPs/BEP-341.md). These differences result in BSC having a unique finality process compared to Ethereum. For more details, please refer to the the following doc:

[BSC Finality API](finality-api.md).
[BSC Finality API](bsc-api-list.md#finality-api).

### Blob

Bsc implement EIP-4844, which support Shard Blob Transactions, as described in [BEP-336](https://github.com/bnb-chain/BEPs/blob/master/BEPs/BEP-336.md). For more details, please refer to the the following doc: [BSC Blob API](blob-api.md).
Bsc implement EIP-4844, which support Shard Blob Transactions, as described in [BEP-336](https://github.com/bnb-chain/BEPs/blob/master/BEPs/BEP-336.md). For more details, please refer to the the following doc: [BSC Blob API](bsc-api-list.md#blob-api).

### Other BSC API

Bsc implement some others apis, as described in: [BSC API](bsc-api.md).
Bsc implement some others apis, as described in: [BSC API](bsc-api-list.md#others).
4 changes: 2 additions & 2 deletions docs/bnb-smart-chain/developers/quick-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Since BSC is EVM-compatible, your existing Ethereum smart contract skills will s

Here are some resources to help you get connected to the BSC network:

- [Network Information and RPC Providers](json_rpc/json-rpc.md)
- [Network Information and RPC Providers](json_rpc/json-rpc-endpoint.md)
- [Wallet Configuration](./wallet-configuration.md)

## Get Tokens
Expand All @@ -28,7 +28,7 @@ For the mainnet, you can withdraw tokens directly from a centralized exchange (C
## JSON-RPC API

Interacting with BSC requires sending requests to specific JSON-RPC API methods. BSC's APIs are compatible with Geth.
- [JSON-RPC API](json_rpc/json-rpc.md)
- [JSON-RPC API](json_rpc/json-rpc-endpoint.md)

## Developer Tools
- Explorer
Expand Down
4 changes: 2 additions & 2 deletions docs/bnb-smart-chain/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ title: BNB Smart Chain
<div>MEV Builder</div>
<p>Become a builder and create blocks and offering them to the validator</p>
</a>
<a href="./developers/json_rpc/json-rpc">
<div>JSON-RPC</div>
<a href="./developers/json_rpc/json-rpc-endpoint">
<div>JSON-RPC-Endpoint</div>
<p>Interacting with BSC requires sending requests to specific JSON-RPC API methods.</p>
</a>
</div>
6 changes: 2 additions & 4 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,8 @@ nav:
- Quick Guide: ./bnb-smart-chain/developers/quick-guide.md
- Dev-Tools: https://www.bnbchain.org/en/dev-tools
- JSON-RPC:
- Json Rpc: ./bnb-smart-chain/developers/json_rpc/json-rpc.md
- Finality Api: ./bnb-smart-chain/developers/json_rpc/finality-api.md
- Blob Api: ./bnb-smart-chain/developers/json_rpc/blob-api.md
- Bsc Api: ./bnb-smart-chain/developers/json_rpc/bsc-api.md
- Json Rpc Endpoint: ./bnb-smart-chain/developers/json_rpc/json-rpc-endpoint.md
- Bsc Api list: ./bnb-smart-chain/developers/json_rpc/bsc-api-list.md
- Faucet: ./bnb-smart-chain/developers/faucet.md
- Node Operators:
- Node Best Practices: ./bnb-smart-chain/developers/node_operators/node_best_practices.md
Expand Down

0 comments on commit 3e08e26

Please sign in to comment.