Skip to content

提交交易

Fountainhead 提供为每位用户提供独立的 SWQoS 端口,帮助用户交易更快的上链。

注意:暂时并没有防夹保护。

提交交易的基本步骤如下:

1. 选择提交的区域

Fountainhead 目前在AMS,FRA和NY三个地区提供接收用户交易的接口,你需要选择最近的区域来提交,分别如下:

具体域名请参考 用户后台 的分配域名(以下是示例域名)

在一些特殊情况下,如狙击,你需要同时提交交易到这三个接口。

2. 在交易中添加一条转账指令

Fountainhead 收取最低0.001 SOL的tip作为加速费用,你需要在交易中添加一条如下的转账指令:

// typescript
// legacy

const transaction = new Transaction();
const toAddress = new PublicKey('Landw8nr6tjdZr1wwNHDqAY9T5jpB1fcbZzzqath3o1');
const instruction = SystemProgram.transfer({
    fromPubkey: fromWallet.publicKey,
    toPubkey: toAddress,
    lamports: 0.001 * 1e9, // 0.001 SOL
});
transaction.add(instruction);

建议将这条转账指令作为交易的第一条指令,这将会对你交易上链速度有所帮助。

只有转账到以下地址的交易会被正确接收:

  • Land5LvHLLtucKoMVMGRZLJkW1ix6grAwXckxTYtddK
  • Land9fkdtUScHh8PPsNCU9hWMDPGufReqPJbEJXPWQi
  • Land9GpvNq3PaHEBpGP375SkiA2CYiDwmdMV7vNi5FK
  • LandHm73CRBQ27CPixDbziuoAT4XhPozCBk7X4qkaZj
  • LandjpLZM3Kbon4DfEiR3mjDEpB8bTVoZwrZLq4mVvX
  • LandmT7iTEY1wyoxDPiN6WwES17DtFCVtQWrM5kdKFD
  • LandtvZUb6ePyMBoPnn3mknNZvDxNGgDbHytbdh4MdF
  • LandUP5rRXzCHFdEH8XMT5hzSBDG7acgqRMQQzpN3jQ
  • LandW5wqpobM3V67n9qJMofsbgaukbp2SY4v4qgoAPs
  • Landw8nr6tjdZr1wwNHDqAY9T5jpB1fcbZzzqath3oc

3. 添加优先费

SWQoS是一个快速通道,在交易中添加合理的优先费可以使得你的交易更快的被确认。优先费的为 CU*每CU价格,价格单位为microLamports。

1 SOL = 1e9 Lamports 1 Lamports = 1e6 microLamports

以下是一个0.01 SOL 优先费的示例,CU为200000(默认),每CU价格为50000000 microLamports:

// typescript
// legacy

// CU数量
const computeUnitLimitInstruction = ComputeBudgetProgram.setComputeUnitLimit({
    units: 200000,
});
transaction.add(computeUnitLimitInstruction);

// CU价格
const computeUnitPriceInstruction = ComputeBudgetProgram.setComputeUnitPrice({
    microLamports: 50*1e6
});
transaction.add(computeUnitPriceInstruction);

4. 提交交易

Fountainhead SWQoS 接口仅接收 base64 编码的交易,示例如下:

// post 

curl https://landing-ams.fountainhead.land -s -X POST -H "Content-Type: application/json" -d ' 
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "sendTransaction",
  "params": [
    "<base64Transaction>",
    {
      "encoding": "base64"
    }
  ]
}'
// typescript
// legacy

const connection = new Connection("https://landing-ams.fountainhead.land", "processed");

const rawTransaction = transaction.serialize();
const base64Transaction = rawTransaction.toString('base64');

const signature = await connection.sendEncodedTransaction(base64Transaction, { 
    skipPreflight: true 
});

如果你想让交易更快的上链,推荐使用 "processed" 和 "skipPreflight: true " 参数。

5. 白名单和速率限制

我们使用白名单和请求速率限制的方法来管理。白名单可以在Fountainhead后台自行添加,速率限制可以联系Fountainhead工作人员根据用量定制。