메인 콘텐츠로 건너뛰기
Plasma는 완전한 EVM 호환성을 갖추어, 표준 Ethereum 도구를 사용하면서 스테이블코인 네이티브 애플리케이션에 최적화된 기능의 혜택을 받을 수 있습니다. Plasma의 아키텍처 세부 사항을 더 알아보려면 아키텍처 개요 섹션을 참조하십시오.

RPC 연결 확인

두 Plasma 네트워크 모두에 대해 공개 RPC 엔드포인트가 제공됩니다:
# Mainnet (recommended)
curl --location https://rpc.plasma.to --header 'Content-Type: application/json' --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}'

# Testnet (optional)
curl --location https://testnet-rpc.plasma.to --header 'Content-Type: application/json' --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}'
메인넷 응답은 다음과 유사합니다:
{"jsonrpc":"2.0","id":1,"result":"0x11180f"}
공개 엔드포인트는 속도 제한이 있습니다. 프로덕션 용도나 빈번한 요청을 위해서는 파트너 RPC 제공자 사용을 고려하십시오.

개발 도구 구성

아래는 HardhatTruffle 예제입니다:

Hardhat

두 Plasma 네트워크를 포함하도록 hardhat.config.js 파일을 만들거나 수정합니다:
require("dotenv").config();

module.exports = {
  networks: {
    plasmaMainnet: {
      url: process.env.MAINNET_RPC_ENDPOINT || "https://rpc.plasma.to",
      chainId: 9745,
      accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : []
    },
    // Optional: enable the testnet for staging.
    plasmaTestnet: {
      url: process.env.TESTNET_RPC_ENDPOINT || "https://testnet-rpc.plasma.to",
      chainId: 9746,
      accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : []
    }
  },
  solidity: {
    version: "0.8.28",
    settings: {
      optimizer: {
        enabled: true,
        runs: 200
      }
    }
  }
};

Truffle 구성

Truffle을 사용하는 경우 truffle-config.js를 업데이트하십시오:
const HDWalletProvider = require('@truffle/hdwallet-provider');

module.exports = {
  networks: {
    plasmaMainnet: {
      provider: () => new HDWalletProvider(
        "<YOUR_MNEMONIC_HERE>",
        process.env.MAINNET_RPC_ENDPOINT || "https://rpc.plasma.to",
      ),
      network_id: 9745,
      gas: 5500000,
    },
    plasmaTestnet: {
      provider: () => new HDWalletProvider(
        "<YOUR_MNEMONIC_HERE>",
        process.env.TESTNET_RPC_ENDPOINT || "https://testnet-rpc.plasma.to",
      ),
      network_id: 9746,
      gas: 5500000,
    }
  },
  compilers: {
    solc: {
      version: "0.8.28",
      settings: {
        optimizer: {
          enabled: true,
          runs: 200
        }
      }
    }
  }
};

지갑 통합

Web3.js 통합

const Web3 = require('web3');
const web3 = new Web3(process.env.MAINNET_RPC_ENDPOINT || 'https://rpc.plasma.to');

// Check connection
web3.eth.getBlockNumber()
  .then(blockNumber => console.log('Connected to Plasma node. Current block:', blockNumber))
  .catch(error => console.error('Connection error:', error));

Ethers.js 통합

const { ethers } = require('ethers');
const provider = new ethers.JsonRpcProvider('https://testnet-rpc.plasma.to');

// Check connection
provider.getBlockNumber()
  .then(blockNumber => console.log('Connected to Plasma node. Current block:', blockNumber))
  .catch(error => console.error('Connection error:', error));

설정 검증

개발 환경이 올바르게 설정되었는지 확인하기 위한 간단한 스크립트를 작성합니다:
const { ethers } = require('ethers');
require('dotenv').config();

async function testSetup() {
  // Connect to the Plasma node.
  const provider = new ethers.JsonRpcProvider('https://testnet-rpc.plasma.to');
  
  // Get network information.
  const network = await provider.getNetwork();
  console.log('Connected to network:', network);
  
  // Get current block number.
  const blockNumber = await provider.getBlockNumber();
  console.log('Current block number:', blockNumber);
  
  // Optionally, print address and balance if PRIVATE_KEY is set.
  if (process.env.PRIVATE_KEY) {
    const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);
    const balance = await provider.getBalance(wallet.address);
    console.log('Account address:', wallet.address);
    console.log('Balance:', ethers.formatEther(balance), 'XPL');
  } else {
    console.log('Set PRIVATE_KEY to also print address and balance.');
  }
}

testSetup()
  .then(() => console.log('Setup test completed successfully'))
  .catch(error => console.error('Setup test failed:', error));

문제 해결

문제조치
연결 거부됨RPC 엔드포인트가 올바르고 접근 가능한지 확인
가스 추정 실패지갑에 충분한 XPL이 있는지 확인
Solidity 버전 오류Plasma가 지원하는 컴파일러 버전에 맞도록 구성 업데이트
트랜잭션 실패RPC URL과 올바른 체인 ID 확인