블록체인 개발, Chainstack과 Python
James Reed
Infrastructure Engineer · Leapcell

Chainstack은 블록체인 노드의 배포 및 관리를 간소화하여 개발자에게 분산형 애플리케이션(DApp)을 구축하고 상호 작용할 수 있는 안정적인 인프라를 제공하는 강력한 플랫폼입니다. Chainstack을 Python과 통합하면 Python 애플리케이션 내에서 블록체인 상호 작용을 효율적으로 관리할 수 있습니다. 이 튜토리얼에서는 Chainstack을 설정하고 Python을 사용하여 블록체인 네트워크와 상호 작용하는 과정을 안내합니다.
Key Takeaways
- Chainstack은 개발자를 위한 블록체인 노드 배포 및 관리를 간소화합니다.
- Python은 Web3.py를 통해 블록체인 노드와의 상호 작용을 가능하게 합니다.
- 자격 증명 및 개인 키의 안전한 처리는 블록체인 개발에 매우 중요합니다.
전제 조건
시작하기 전에 다음 사항이 있는지 확인하십시오.
-
Python: 컴퓨터에 설치되어 있어야 합니다. 공식 웹사이트에서 다운로드할 수 있습니다.
-
Chainstack 계정: Chainstack에 가입하여 블록체인 노드 서비스에 액세스하십시오.
-
Web3.py 라이브러리: 이는 Ethereum과 상호 작용하기 위한 Python 라이브러리입니다. pip를 사용하여 설치하십시오.
pip install web3
1단계: Chainstack에 블록체인 노드 배포
-
가입 및 로그인: Chainstack에서 계정을 생성하고 로그인합니다.
-
노드 배포:
- 프로젝트 섹션으로 이동하여 새 프로젝트를 생성합니다.
- 프로젝트 내에서 노드 배포를 클릭합니다.
- 원하는 블록체인 프로토콜(예: Ethereum) 및 네트워크(예: Mainnet, Testnet)를 선택합니다.
- 요구 사항에 따라 노드 유형 및 배포 옵션을 선택합니다.
- 노드를 배포하고 배포가 완료될 때까지 기다립니다.
-
노드 자격 증명 액세스:
- 배포가 완료되면 프로젝트의 노드 섹션으로 이동합니다.
- 노드를 클릭하여 세부 정보를 봅니다.
- RPC 엔드포인트 URL을 기록해 둡니다. Python을 통해 연결하는 데 필요합니다.
2단계: Python을 사용하여 블록체인 노드에 연결
-
환경 변수 설정:
-
보안을 위해 Chainstack 노드의 RPC 엔드포인트를 환경 변수에 저장합니다.
-
프로젝트 디렉토리에
.env
파일을 만들고 다음을 추가합니다.WEB3_PROVIDER_URI=YOUR_CHAINSTACK_RPC_ENDPOINT
-
YOUR_CHAINSTACK_RPC_ENDPOINT
를 실제 엔드포인트 URL로 바꿉니다.
-
-
환경 변수 로드:
-
환경 변수를 관리하기 위해
python-dotenv
패키지를 설치합니다.pip install python-dotenv
-
Python 스크립트에서 환경 변수를 로드합니다.
import os from dotenv import load_dotenv load_dotenv() web3_provider_uri = os.getenv('WEB3_PROVIDER_URI')
-
-
Web3 연결 초기화:
-
Web3.py를 사용하여 Chainstack 노드에 연결합니다.
from web3 import Web3 web3 = Web3(Web3.HTTPProvider(web3_provider_uri)) if web3.isConnected(): print("Successfully connected to the blockchain.") else: print("Connection failed.")
-
3단계: 블록체인과 상호 작용
연결이 설정되면 다양한 블록체인 작업을 수행할 수 있습니다. 몇 가지 예가 있습니다.
-
최신 블록 번호 가져오기:
latest_block = web3.eth.block_number print(f"Latest block number: {latest_block}")
-
블록 세부 정보 검색:
block = web3.eth.get_block(latest_block) print(f"Block details: {block}")
-
트랜잭션 보내기:
- 계정에 충분한 자금이 있고 개인 키가 안전하게 관리되는지 확인합니다.
from web3.middleware import geth_poa_middleware from eth_account import Account # For networks like BNB Smart Chain, inject the PoA middleware web3.middleware_onion.inject(geth_poa_middleware, layer=0) # Replace with your private key and account address private_key = 'YOUR_PRIVATE_KEY' account = Account.from_key(private_key) to_address = 'RECIPIENT_ADDRESS' value = web3.to_wei(0.01, 'ether') # Amount to send # Create and sign the transaction transaction = { 'to': to_address, 'value': value, 'gas': 21000, 'gasPrice': web3.to_wei('5', 'gwei'), 'nonce': web3.eth.get_transaction_count(account.address), 'chainId': web3.eth.chain_id } signed_txn = web3.eth.account.sign_transaction(transaction, private_key=private_key) # Send the transaction tx_hash = web3.eth.send_raw_transaction(signed_txn.rawTransaction) print(f"Transaction sent with hash: {tx_hash.hex()}")
참고:
'YOUR_PRIVATE_KEY'
및'RECIPIENT_ADDRESS'
를 실제 개인 키와 수신자 주소로 각각 바꿉니다. 개인 키를 안전하게 처리하고 스크립트에 하드 코딩하지 마십시오.
추가 리소스
-
Chainstack 설명서: 개발자 포털에서 Chainstack의 기능 및 API 기능에 대해 자세히 알아보십시오.
-
Web3.py 설명서: Python을 사용하여 Ethereum과 상호 작용하는 방법에 대한 자세한 내용은 Web3.py 설명서를 참조하십시오.
FAQs
가입하고, 프로젝트를 만들고, Chainstack 플랫폼을 통해 노드를 배포합니다.
Web3.py는 Ethereum 기반 블록체인과 상호 작용하는 데 사용되는 Python 라이브러리입니다.
스크립트에 키를 하드 코딩하는 대신 환경 변수 또는 보안 저장소를 사용하십시오.
결론
이 튜토리얼을 따라 Chainstack을 사용하여 블록체인 노드를 설정하고 Python을 통해 연결했습니다. 이 설정을 통해 블록체인과 상호 작용하여 데이터를 쿼리하고 트랜잭션을 보내는 등의 기능을 활성화할 수 있습니다. 보다 고급 사용 사례의 경우 Chainstack의 API 및 추가 서비스를 탐색하여 블록체인 개발 워크플로를 향상시키는 것이 좋습니다.
Leapcell은 Python 프로젝트를 클라우드에 배포하는 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무제한 프로젝트를 무료로 배포
- 사용량에 따라서만 지불하고 요청이나 요금이 없습니다.
비교할 수 없는 비용 효율성
- 유휴 요금 없이 사용한 만큼만 지불합니다.
- 예: $25로 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI。
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합。
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅。
손쉬운 확장성 및 고성능
- 높은 동시성을 쉽게 처리하기 위한 자동 확장。
- 운영 오버헤드가 없어 구축에만 집중할 수 있습니다。
설명서에서 자세히 알아보세요!
X에서 팔로우하세요: @LeapcellHQ