一文搞懂Solana 交易为什么又快又便宜
SOL区块链特点
Solana 区块链是一个高性能、低费用的公共区块链平台,专注于提供快速的交易处理和支持去中心化应用(DApps)的开发:
- 并行事务处理 意思是,可以同时处理多个事务。另一种方法是以太坊使用的“单线程”模型。因此,以太坊本质上是按顺序处理交易,一个接着一个。在 Solana 中,可以同时处理许多交易。
- 交易速度Solana 的目标是在 0.4 秒内确认交易。它通过所谓的“乐观确认”来做到这一点。因此,它不会等待所有网络验证器确认交易(在其他网络中可能需要很多分钟),而是认为 66%(三分之二)“足够好”。
- 本地费用市场 为什么用“本地”这个词?在以太坊中,NFT 大幅下跌或其他高需求事件可能会导致整个网络拥堵并增加每个人的费用。这可能会导致人们在一段时间内不想使用网络。在 Solana 中,拥塞可以仅限于正在经历高需求或需要的特定帐户(本地!)
Solana代币发行
这里推荐使用机器人一键发行Token链接直达,也可以使用js库来实现Solana 测试网络(devnet)上实现转账功能可以使用 @solana/web3.js 库来执行这些操作 代码片段
.
// An highlighted block
const web3 = require('@solana/web3.js');
async function transferSOL(senderSecretKeyHex, recipientPublicKeyString, amount) {
// 连接到 Solana devnet
const connection = new web3.Connection(web3.clusterApiUrl('devnet'));
// 将16进制字符串的私钥转换为 Uint8Array
const senderSecretKey = Uint8Array.from(Buffer.from(senderSecretKeyHex, 'hex'));
const senderKeypair = web3.Keypair.fromSecretKey(senderSecretKey);
// 获取接收者的公钥
const recipientPublicKey = new web3.PublicKey(recipientPublicKeyString);
// 检查账户余额
const senderBalance = await connection.getBalance(senderKeypair.publicKey);
console.log("Sender's current balance:", senderBalance / web3.LAMPORTS_PER_SOL, 'SOL');
// 确保账户有足够的余额
if (senderBalance < amount * web3.LAMPORTS_PER_SOL) {
console.log('Insufficient balance.');
return;
}
// 创建转账交易
const transaction = new web3.Transaction().add(
web3.SystemProgram.transfer({
fromPubkey: senderKeypair.publicKey,
toPubkey: recipientPublicKey,
lamports: amount * web3.LAMPORTS_PER_SOL,
}),
);
// 签署并发送交易
const signature = await web3.sendAndConfirmTransaction(
connection,
transaction,
[senderKeypair],
);
console.log('Transfer successful, transaction signature:', signature);
}
// 提供您的16进制私钥和接收者的公钥地址
const senderSecretKeyHex = 'YOUR_PRIVATE_KEY_HEX';
const recipientPublicKeyString = 'RECIPIENT_PUBLIC_KEY';
const amount = 0.1; // 转账数量 (SOL)
transferSOL(senderSecretKeyHex, recipientPublicKeyString, amount).catch(console.error);