項目專屬RPC

介紹

項目方無需訂閱計劃即可使用項目專屬RPC

Scutum的項目專屬RPC可以為Ethereum和BSC上的DEX、Bot、Wallet和DApp等訂單流項目提供MEV保護,支持返利至項目方用戶地址或項目方指定地址。

相比錢包用戶通用RPC,項目專屬RPC會為每個訂單流項目方提供專屬的RPC URL,支持可視化自定義RPC域名、交易披露、返利和Revert保護等參數,便於項目方低成本快速集成RPC。

如何將RPC集成到項目中

1. 配置RPC

  1. blockrazor.io完成註冊並登錄控制台

  2. 在Scutum模塊下點擊RPC配置頁,查看專屬RPC的配置信息

  3. 點擊 更新,進入配置更新頁,根據需求調整參數,參數含義見如下表格

參數
含義

默認RPC URL

每個賬號默認自動生成1個Ethereum RPC和1個BSC RPC。默認RPC由系統自動生成,URL無法修改

自定義RPC URL

自定義RPC URL支持修改三級域名,可用於向項目的終端用戶推廣,引導用戶在錢包中添加自定義RPC

披露

系統默認將交易的hash、to、calldata、functionSelector和logs字段分享給Searcher,分享字段越多獲得返利的可能性越大,請在評估交易隱私披露必要性後謹慎操作

返利地址

默認返利地址為tx.origin,即會將返利返給交易的發起者,可修改為固定返利地址(EOA或合約地址)

返利比例

Ethereum的默認返利比例為90%、BSC的默認返利比例為 99%,返利比例調整區間為1~99%,返利比例越大,交易納入區塊的時間可能也會相應延長

Revert保護

默認開revert保護,如交易在實際執行中發現revert,則不會納入區塊。為確保快速納入區塊,建議在以太坊的交易中設置一定的priority fee。

  1. 點擊 確認,系統將實時更新RPC配置

2.集成RPC

  1. 找到配置文件或代碼:打開項目工程,在DApp項目中找到配置RPC節點的文件或代碼段。這可能是一個配置文件,如.env、config.js、truffle-config.js等,或者是直接在代碼中硬編碼

  2. 修改RPC URL:將配置文件或代碼中的RPC URL修改為Scutum RPC URL

  3. 測試連接:更改後,在本地運行DApp或相應的測試腳本來確保新的RPC URL可以正常工作,可以使用如web3.eth.net.isListening()ethers.provider.pollingInterval等方法來檢查連接是否成功

  4. 部署更新:如測試通過,可以將變更部署至生產環境

// 引入Web3
const Web3 = require('web3');

// 創建web3實例並連接到RPC URL
const web3 = new Web3('https://ethereum-rpc.publicnode.com'); // 可在此处将RPC URL替换为Scutum RPC URL

// 檢查連接
web3.eth.net.isListening()
  .then((listening) => {
    console.log('Web3 connected: ', listening);
  })
  .catch((err) => {
    console.error('Web3 connection error: ', err);
  });

3. 查詢交易

  1. 在Scutum模塊下點擊【返利】查看返利情況,點擊【交易】查看項目交易情況

JSON RPC

Scutum在支持標準JSON RPC方法的基礎上,也支持定製化的JSON RPC方法,訂單流項目方可以向項目專屬RPC發送bundle,方法名為eth_sendMevBundle

在BSC中,eth_sendMevBundle允許在bundle中包含0 gwei的交易,但bundle中交易(public mempool中的交易除外)的平均gasPrice(需要滿足Validator的平均gasPrice要求 )仍需不小於1 gwei。由於BSC的多個頭部builder對該模式具有倾向性,建議構建0 gwei的交易。

請求參數

bundle

參數
必選
格式
示例
備註

txs

[]bytes

[ "0xf84a……e54284" ]

raw txs,最多允許設置50筆

revertingTxHashes

[]hash

["0x1f23……0abb1e"]

允許revert的交易哈希,是txs的子集

maxBlockNumber

uint64

39177941

該bundle有效的最大區塊號

refundAddress

address

"0x9abae1b279a4be25aeae49a33e807cdd3ccffa0c"

如hint中存在值為true的交易字段,則需要設置本字段

refundPercent

int

90

如hint中存在值為true的交易字段,則需要設置本字段

hint

hint針對txs中的交易設置披露信息,如果設為true則視為披露該交易字段,false視為不披露該交易字段,如不設置,則默認為false。

參數
必填
格式
示例
備註

hash

bool

true

交易哈希

from

bool

false

交易的發起方地址

to

bool

false

交易的接收方地址

value

bool

false

交易value

nonce

bool

false

交易nonce

calldata

bool

false

交易calldata

functionSelector

bool

false

合約函數簽名哈希的前4個字節

gasLimit

bool

false

交易的gas上限

gasPrice

bool

false

交易的gas價格

logs

bool

true

交易在執行過程中拋出的事件日誌(該字段聯動設置是否披露狀態對象的數據變化)

請求示例

curl -X POST -H "Content-Type: application/json" --data '{
	"id": 1
	"jsonrpc": "2.0",
	"method": "eth_sendMevBundle",
	"params": [{
		"txs": ["0xf84a8080808080808193a0437a5584216e68d1ff5bd7803161865e058f9bf4637fd1391213eac03ae64444a00df12bffe475d5dd8cc1544b72ee280471f1dcb5173827ba41eb25cfc3e54284"],
		"revertingTxHashes": [],
		"maxBlockNumber": 39177941,
		"hint": {
			"hash": true,
			"from": false,
			"to": false,
			"value": false,
			"nonce": false,
			"calldata": false,
			"functionSelector": false,
			"gasLimit": false,
			"gasPrice": false,		
			"logs": true
		},
		"refundAddress": "0x9abae1b279a4be25aeae49a33e807cdd3ccffa0c",
		"refundPercent": 90
	}]
}'<ETH_NODE_URL>

返回示例

正常

{"jsonrpc":"2.0","id":1,"result": "0x11111111..."}

異常

{"jsonrpc":"2.0","id":1,"jsonerror":{"code":-38000,"message":"nonce too low: address 0x9Abae1b279A4Be25AEaE49a33e807cDd3cCFFa0C, tx: 0 state: 45"}}

Last updated