将创建的keypair存储在节点中



我在一家加密货币交易公司工作,我想保留在我的节点中创建的所有帐户。我们需要保存账户的私钥、公钥等。在创建钱包时,没有传递节点的IP地址,所以我不能清楚地理解它是如何工作的。我想用web3.js创建一个钱包,并将其存储在节点中。

const web3 = require("@solana/web3.js");
const { binary_to_base58 } = require("base58-js");
let decodedPublicKey;
let decodedPrivateKey;
let connection = new web3.Connection(web3.clusterApiUrl("devnet"), "confirmed");
let publicKey;
let privateKey;
const createWallet = async () => {
// Generate a new random public key
var from = web3.Keypair.generate();
publicKey = from._keypair.publicKey;
privateKey = from._keypair.secretKey;
decodedPublicKey = binary_to_base58(publicKey);
decodedPrivateKey = binary_to_base58(privateKey);
console.log("Public Key: " + decodedPublicKey);
console.log("Private Key: " + decodedPrivateKey);
//   console.log(publicKey);
//   console.log(privateKey);
};

当您使用web3.Keypair.generate()创建新的密钥对时,它是完全脱机的,不需要节点的任何干预。如果希望存储这些密钥对,可以从密钥对的原始字节中将它们保存到文件/数据库/密钥库中,即:

fs = require('fs');
fs.writeFile('keypair.txt', from.secretKey);

然后加载它:

const secretKeyData = fs.readFileSync('keypair.txt');
const from = Keypair.fromSecretKey(secretKeyData);

请注意,这是未经测试的伪代码,因此编码中可能有一些错误的位。

最新更新