-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
스마트 계약을 어떻게 개발합니까?
A smart contract is a self-executing program on a blockchain that enforces agreement terms when conditions are met, ensuring trust and transparency.
2025/08/11 10:50
스마트 계약의 기본 사항 이해
스마트 계약은 사전 정의 된 조건이 충족 될 때 계약 조건을 자동으로 시행하는 블록 체인에 배치 된 자체 실행 프로그램입니다. 이 계약은 일단 배치 한 후에 불변 할 수 없으므로 변경 될 수 없어 신뢰와 투명성을 보장합니다. 스마트 계약을 개발하는 데 가장 널리 사용되는 플랫폼은 Solidity 프로그래밍 언어를 지원하는 Ethereum 입니다. 코드를 작성하기 전에 분산 , 가스 수수료 및 거래 최종성과 같은 핵심 블록 체인 개념을 이해하는 것이 필수적입니다. 스마트 계약과의 각 상호 작용은 가스를 소비하며, 이는 블록 체인의 기본 토큰 (예 : Ethere on Ethereum)에서 지불됩니다. 개발자는 사용자의 비용을 최소화하기 위해 효율적으로 계약을 설계해야합니다.
개발 환경 설정
스마트 계약 개발을 시작하려면 적절한 개발 환경을 구성해야합니다. 대부분의 블록 체인 개발 도구의 전제 조건 인 Node.js 및 NPM을 설치하여 시작하십시오. 다음으로 두 개의 인기있는 이더 리움 개발 프레임 워크 인 Hardhat 또는 Truffle을 설치하십시오. 이 안내서는 하드 하트를 사용할 것입니다.
-
npm install --hardhat사용하여 HardHat을 설치하십시오 - 새 프로젝트 초기화 :
npx hardhat - 프롬프트되면 'JavaScript 프로젝트 만들기'를 선택하십시오
- 필수 플러그인을 설치하십시오 :
npm install --save-dev @nomicfoundation/hardhat-toolbox
또한 구문 하이라이트 및 오류 감지 용 Solidity Extension이 있는 Visual Studio Code 와 같은 코드 편집기가 필요합니다. 또한 브라우저 지갑 인 메타 마스크를 설치하여 테스트 네트워크와 상호 작용하십시오. 연금술 또는 Infura 와 같은 서비스의 엔드 포인트를 사용하여 사용자 정의 RPC 네트워크를 추가하여 Goerli 또는 Sepolia 와 같은 테스트 네트워크에 연결하도록 메타 마스크를 구성하십시오.
첫 번째 스마트 계약서를 견고하게 작성합니다
contracts 디렉토리 내부에서 SimpleStorage.sol 이라는 새 파일을 만듭니다. Solidity 버전을 선언하여 시작하십시오.
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract 키워드를 사용하여 계약을 정의하십시오.
contract SimpleStorage {uint256 private data; function setData(uint256 _data) public { data = _data; } function getData() public view returns (uint256) { return data; }
}
이 계약에는 유형 uint256 의 상태 변수 data , 그 값을 설정하는 함수, 다른 사람은이를 검색합니다. private 키워드는 계약 외부에서 data 에 직접 액세스 할 수 없도록합니다. public 기능을 외부에서 호출 할 수 있습니다. getData 의 view Modifier는 블록 체인 상태를 수정하지 않으므로 외부로 호출 할 때 읽기 전용 및 가스가 없습니다.
스마트 계약을 컴파일하고 테스트합니다
배포 전에 Hardhat을 사용하여 계약을 수집합니다.
- 터미널에서
npx hardhat compile실행하십시오 - 성공하면 아티팩트가
artifacts폴더에 나타납니다
다음으로 test 디렉토리에 테스트 스크립트 (예 : SimpleStorage.test.js :
const { expect } = require('chai'); const { ethers } = require('hardhat');설명 ( 'simplestorage', function () { IT ( '올바른 초기 값을 반환해야한다', Async function () {const SimpleStorage = await ethers.getContractFactory('SimpleStorage'); const simpleStorage = await SimpleStorage.deploy(); await simpleStorage.deployed(); expect(await simpleStorage.getData()).to.equal(0);});
( '저장된 값을 업데이트해야한다', Async function () {
const simpleStorage = await ethers.getContractAt('SimpleStorage', /* deployed address */); await simpleStorage.setData(42); expect(await simpleStorage.getData()).to.equal(42);}); });
테스트 실행 : npx hardhat test . 성공적인 테스트 출력은 계약 로직이 사운드인지 확인합니다. 배포 전에 버그를 잡는 데 테스트가 중요합니다.
계약을 테스트 네트워크에 배포합니다
deploy.js 라는 scripts 폴더에서 배포 스크립트를 만듭니다.
const { ethers } = require('hardhat');비동기 기능 main () { const simplestorage = await ethers.getContractFactory ( 'simplestorage'); const simplestorage = simplestorage.deploy (); simplestorage.deployed ()를 기다립니다.console.log ( '계약 배포 :', simplestorage.address); }
main (). catch ((오류) => { Console.error (오류); process.exitcode = 1; });
테스트 네트워크 및 지갑 자격 증명을 포함하도록 hardhat.config.js 구성하십시오.
require('@nomicfoundation/hardhat-toolbox'); const INFURA_API_KEY = 'your-infura-key'; const PRIVATE_KEY = 'your-wallet-private-key';module.exports = { 견고성 : '0.8.0', 네트워크 : {goerli: { url: `https://goerli.infura.io/v3/${INFURA_API_KEY}`, accounts: [PRIVATE_KEY] }} };
자리 표시자를 실제 값으로 교체하십시오. 그런 다음 배포 : npx hardhat run scripts/deploy.js --network goerli . 성공하면 계약 주소가 표시됩니다. Etherscan 과 같은 블록 체인 탐색기의 주소를 확인하여 배포를 확인하십시오.
배포 된 계약과 상호 작용합니다
배포 후 Ethers.js를 사용하여 또는 Metamask를 통해 직접 계약과 상호 작용하십시오. node.js 스크립트에서 :
const { ethers } = require('hardhat'); const contractAddress = '0x...'; const contractABI = [ / ABI from artifacts / ];Async 함수 interact () { Const Provider = New Ethers.providers.web3provider (Window.Ethereum); AWAIT PROVIDER.SEND ( 'eth_RequestAccounts', []); const signer = provider.getSigner (); const contract = new ethers.contract (ContractAddress, Contractabi, 서명자);계약을 기다립니다. 세트 데이터 (100); const value = await contract.getData (); console.log ( '현재 값 :', value.toString ()); }
또는 지갑을 연결하고 '쓰기 계약'탭을 사용하여 Etherscan을 사용하여 계약서에 쓰십시오. ABI가 Etherscan에서 검증되어 작동하도록 확인하십시오.
자주 묻는 질문
SPDX 라이센스 식별자의 목적은 무엇입니까? SPDX-License-Identifier는 스마트 계약이 공개되는 오픈 소스 라이센스를 지정합니다. 법적 명확성과 투명성을 위해 그것을 포함시키는 것이 가장 좋은 관행입니다. 공통 라이센스에는 MIT, GPL 및 Apache-2.0이 포함됩니다.
견고성의 오류를 어떻게 처리합니까? 요구 , 반복 및 주장 진술을 사용하십시오. require(condition, 'Error message') 사용자 입력을 확인하고 false 인 경우 메시지로 되돌아갑니다. revert() 수동으로 실행을 중단하기 위해 사용될 수 있습니다. assert 는 내부 오류를위한 것이며 남은 모든 가스를 소비합니다.
배포 후 스마트 계약을 업그레이드 할 수 있습니까? 불변성으로 인해 직접 수정이 불가능합니다. 그러나 UUPS 또는 Transparent Proxy 와 같은 프록시 패턴은 실행 가능한 논리에서 데이터 저장을 분리하여 로직 업그레이드를 허용합니다. 이를 위해서는 개발 중에 신중한 건축 계획이 필요합니다.
가스 추정이란 무엇이며 왜 중요한가요? 가스 추정은 거래가 소비 할 가스의 양을 예측합니다. 가스 외 오류를 방지하고 사용자가 거래 비용을 이해하도록 도와줍니다. Hardhat과 같은 도구는 가스를 자동으로 추정하지만 복잡한 기능에는 estimateGas() 사용하여 수동 검사가 필요할 수 있습니다.
부인 성명:info@kdj.com
제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!
본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.
- Bitcoin, eCash Fork 및 Airdrop Dynamics: 암호화폐의 최신 논란에 대한 심층 분석
- 2026-05-03 12:55:01
- 2026년 마이애미 컨센서스: Web3, 블록체인, 암호화폐, NFT, 메타버스, 컨퍼런스, 5월 5일 — 월스트리트가 디지털 프론티어를 만나는 곳
- 2026-05-02 12:45:01
- 연준은 금리를 안정적으로 유지하여 지정학적 긴장 속에서 비트코인 가격 하락을 촉발했습니다
- 2026-05-01 06:45:01
- 비트코인 채굴자들이 전력망을 전기화하다: 오하이오 가스 공장 인수로 디지털 금의 새로운 시대가 열리다
- 2026-05-01 00:45:01
- MegaETH의 MEGA 토큰이 빅 애플을 강타했습니다: 실시간 블록체인을 위한 새로운 성능 벤치마크 설정
- 2026-05-01 00:55:01
- 솔라나의 미끄러운 경사: 가격 예측은 저항 손실 및 추가 하락 가능성을 지적합니다.
- 2026-05-01 06:45:01
관련 지식
Bybit에서 BTC 거래를 위해 선형 및 역 무기한 계약 중에서 선택하는 방법은 무엇입니까?
2026-06-06 02:54:55
계약 정산 메커니즘 1. Bybit의 선형 무기한 계약은 USDT로 정산됩니다. 즉, 모든 손익 계산, 마진 요구 사항 및 청산 기준액이 스테이블코인 단위로 표시됩니다. 2. 역영구 계약은 BTC 자체에 정산되므로 모든 거래는 거래자의 BTC 잔액에 직접적으로 영향을 ...
헌팅 중지 및 스푸핑과 같은 선물 시장 조작을 식별하고 방지하는 방법은 무엇입니까?
2026-06-07 14:20:10
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...
일일 최대 손실 한도를 설정하기 위해 Bybit에서 위험 관리 규칙을 설정하는 방법은 무엇입니까?
2026-06-04 16:40:15
계정 수준 손실 한도 구성 1. 이중 인증을 사용하여 웹 또는 모바일 애플리케이션을 통해 Bybit 계정에 로그인하세요. 2. "자산" 섹션으로 이동한 후 왼쪽 메뉴에서 "위험 관리"를 선택합니다. 3. "일일 손실 한도&q...
마진 요구 사항을 줄이기 위해 Binance에서 포트폴리오 마진 모드를 활성화하는 방법은 무엇입니까?
2026-06-05 04:59:43
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...
열린 선물 포지션을 닫지 않고 Binance에서 Bybit로 이전하는 방법은 무엇입니까?
2026-06-04 03:59:47
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...
미국에서 암호화폐 선물 거래 수익에 따른 세금 영향을 어떻게 처리합니까?
2026-05-29 18:19:59
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 블록 보상을 통해 새로운 단위가 도입되는 2,100만 코인의 고정 공급 한도를 시행합니다. 2. 210,000블록마다(대략 4년마다) 블록 보상이 절반으로 줄어듭니다. 이 프로세스를 절반으로 줄입니다. 3....
Bybit에서 BTC 거래를 위해 선형 및 역 무기한 계약 중에서 선택하는 방법은 무엇입니까?
2026-06-06 02:54:55
계약 정산 메커니즘 1. Bybit의 선형 무기한 계약은 USDT로 정산됩니다. 즉, 모든 손익 계산, 마진 요구 사항 및 청산 기준액이 스테이블코인 단위로 표시됩니다. 2. 역영구 계약은 BTC 자체에 정산되므로 모든 거래는 거래자의 BTC 잔액에 직접적으로 영향을 ...
헌팅 중지 및 스푸핑과 같은 선물 시장 조작을 식별하고 방지하는 방법은 무엇입니까?
2026-06-07 14:20:10
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...
일일 최대 손실 한도를 설정하기 위해 Bybit에서 위험 관리 규칙을 설정하는 방법은 무엇입니까?
2026-06-04 16:40:15
계정 수준 손실 한도 구성 1. 이중 인증을 사용하여 웹 또는 모바일 애플리케이션을 통해 Bybit 계정에 로그인하세요. 2. "자산" 섹션으로 이동한 후 왼쪽 메뉴에서 "위험 관리"를 선택합니다. 3. "일일 손실 한도&q...
마진 요구 사항을 줄이기 위해 Binance에서 포트폴리오 마진 모드를 활성화하는 방법은 무엇입니까?
2026-06-05 04:59:43
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...
열린 선물 포지션을 닫지 않고 Binance에서 Bybit로 이전하는 방법은 무엇입니까?
2026-06-04 03:59:47
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...
미국에서 암호화폐 선물 거래 수익에 따른 세금 영향을 어떻게 처리합니까?
2026-05-29 18:19:59
Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 블록 보상을 통해 새로운 단위가 도입되는 2,100만 코인의 고정 공급 한도를 시행합니다. 2. 210,000블록마다(대략 4년마다) 블록 보상이 절반으로 줄어듭니다. 이 프로세스를 절반으로 줄입니다. 3....
모든 기사 보기














