web3. py 프로필

11640 단어
웹 3. py 라 이브 러 리 와 상호작용 하 는 공동 입 구 는 web3 대상 이다.웹 3 대상 은 API 를 제공 합 니 다. python 개발 에 사용 되 는 응용 프로그램 은 이 더 리 움 블록 체인 과 상호작용 을 합 니 다. 보통 JSON - RPC 서버 를 연결 하여 진행 합 니 다.
공급 자 공급 자Providers 웹 3 를 블록 체인 에 연결 합 니 다.웹 3. py 라 이브 러 리 는 아래 에 내 장 된 providers 을 가지 고 있 으 며, 대부분의 사례 에 적용 할 수 있 습 니 다.
  • web3.HTTPProvider: http 와 https 를 기반 으로 하 는 JSON - RPC 서버 를 연결 하 는 데 사 용 됩 니 다.
  • web3.IPCProvider: ipc 소켓 기반 JSON - RPC 서버 를 연결 하 는 데 사 용 됩 니 다.
  • web3.WebsocketProvider: ws 와 ws 기반 웹 소켓 을 연결 하 는 JSON - RPC 서버.
  • HTTPProvider: 서버 를 찾 을 수 있 는 전체 URI 를 가 져 오 는 데 사 용 됩 니 다.현지 개발 에 있어 서 이것 은 유사 하 다 http://localhost:8545.IPCProvider: IPC 소켓 을 찾 을 수 있 는 파일 시스템 경 로 를 가 져 옵 니 다.매개 변 수 를 제공 하지 않 으 면 운영 체제 의 기본 경 로 를 사용 합 니 다.WebsocketProvider: 서버 를 찾 을 수 있 는 전체 URI 를 가 져 오 는 데 사 용 됩 니 다.현지 개발 에 있어 서 이것 은 유사 하 다 ws://127.0.0.1:8546.
    예제 코드 는 다음 과 같다.
    >>> from web3 import Web3, HTTPProvider, IPCProvider, WebsocketProvider
    
    # Note that you should create only one RPCProvider per
    # process, as it recycles underlying TCP/IP network connections between
    # your process and Ethereum node
    >>> web3 = Web3(HTTPProvider('http://localhost:8545'))
    
    # or for an IPC based connection
    >>> web3 = Web3(IPCProvider())
    
    # or for Websocket based connection
    >>> web3 = Web3(WebsocketProvider('ws://127.0.0.1:8546'))
    

    기본 API
    웹 3 종 류 는 다음 과 같은 매우 편리 한 기본 API 를 제공 합 니 다.
    형식 변환
    web3.toHex
    Web3.toHex(primitive=None, hexstr=None, text=None)
    

    각종 입력 을 가 져 오고 16 진법 으로 되 돌려 줍 니 다.JSON - RPC 규범 에서 16 진법 으로 전환 하 는 규칙 을 따른다.
    >>> Web3.toHex(0)
    '0x0'
    >>> Web3.toHex(1)
    '0x1'
    >>> Web3.toHex(0x0)
    '0x0'
    >>> Web3.toHex(0x000F)
    '0xf'
    >>> Web3.toHex(b'')
    '0x'
    >>> Web3.toHex(b'\x00\x0F')
    '0x000f'
    >>> Web3.toHex(False)
    '0x0'
    >>> Web3.toHex(True)
    '0x1'
    >>> Web3.toHex(hexstr='0x000F')
    '0x000f'
    >>> Web3.toHex(hexstr='000F')
    '0x000f'
    >>> Web3.toHex(text='')
    '0x'
    >>> Web3.toHex(text='cowmö')
    '0x636f776dc3b6'
    

    web3.toText
    Web3.toText(primitive=None, hexstr=None, text=None)
    

    각종 입력 을 가 져 오고 문자열 의 등가 항목 을 되 돌려 줍 니 다.텍스트 가 UTF - 8 로 디 코딩 되 었 습 니 다.
    >>> Web3.toText(0x636f776dc3b6)
    'cowmö'
    >>> Web3.toText(b'cowm\xc3\xb6')
    'cowmö'
    >>> Web3.toText(hexstr='0x636f776dc3b6')
    'cowmö'
    >>> Web3.toText(hexstr='636f776dc3b6')
    'cowmö'
    >>> Web3.toText(text='cowmö')
    'cowmö'
    

    Web3.toBytes
    Web3.toBytes(primitive=None, hexstr=None, text=None)
    

    각종 입력 을 받 아들 이 고 같은 효 과 를 가 진 바이트 로 되 돌려 줍 니 다.텍스트 가 UTF - 8 로 인 코딩 되 었 습 니 다.
    >>> Web3.toBytes(0)
    b'\x00'
    >>> Web3.toBytes(0x000F)
    b'\x0f'
    >>> Web3.toBytes(b'')
    b''
    >>> Web3.toBytes(b'\x00\x0F')
    b'\x00\x0f'
    >>> Web3.toBytes(False)
    b'\x00'
    >>> Web3.toBytes(True)
    b'\x01'
    >>> Web3.toBytes(hexstr='0x000F')
    b'\x00\x0f'
    >>> Web3.toBytes(hexstr='000F')
    b'\x00\x0f'
    >>> Web3.toBytes(text='')
    b''
    >>> Web3.toBytes(text='cowmö')
    b'cowm\xc3\xb6'
    

    Web3.toInt
    Web3.toInt(primitive=None, hexstr=None, text=None)
    

    각종 입력 을 받 아들 이 고 정수 등가 항목 을 되 돌려 줍 니 다.
    >>> Web3.toInt(0)
    0
    >>> Web3.toInt(0x000F)
    15
    >>> Web3.toInt(b'\x00\x0F')
    15
    >>> Web3.toInt(False)
    0
    >>> Web3.toInt(True)
    1
    >>> Web3.toInt(hexstr='0x000F')
    15
    >>> Web3.toInt(hexstr='000F')
    15
    

    화폐가치 전환
    Web3.toWei
    Web3.toWei(value, currency)
    

    wei 로 변 환 된 currency 매개 변수 가 지정 한 액면가 의 값 을 되 돌려 줍 니 다.
    >>> Web3.toWei(1, 'ether')
    1000000000000000000
    

    Web3.fromWei
    Web3.fromWei(value, currency)
    

    wei 를 주어진 화폐의 값 으로 되 돌려 줍 니 다.이 값 은 Decimal 으로 되 돌아 와 정밀도 가 wei 로 떨 어 질 수 있 도록 합 니 다.
    >>> web3.fromWei(1000000000000000000, 'ether')
    Decimal('1')
    

    주소.
    Web3.isAddress
    Web3.isAddress(value)
    

    이 값 이 인식 되 는 주소 형식 중 하나 라면 트 루 로 돌아 갑 니 다.
  • 0 x 접두사 와 접두사 가 없 는 값 을 허용 합 니 다.
  • 주소 에 혼 합 된 대소 문자 가 포함 되 어 있 으 면 이 함 수 는 주소 검사 와 일치 하 는 지 확인 합 니 다 EIP55.
  • >>> web3.isAddress('0xd3CdA913deB6f67967B99D67aCDFa1712C293601')
    True
    

    Web3.isChecksumAddress
    Web3.isChecksumAddress(value)
    

    이 값 이 EIP55 에 부합 되 고 유효한 주소 라면 true 로 돌아 갑 니 다.
    >>> web3.isChecksumAddress('0xd3CdA913deB6f67967B99D67aCDFa1712C293601')
    True
    >>> web3.isChecksumAddress('0xd3cda913deb6f67967b99d67acdfa1712c293601')
    False
    

    Web3.toChecksumAddress
    Web3.toChecksumAddress(value)
    

    EIP 55 검사 와 주어진 주 소 를 되 돌려 줍 니 다.
    >>> Web3.toChecksumAddress('0xd3cda913deb6f67967b99d67acdfa1712c293601')
    '0xd3CdA913deB6f67967B99D67aCDFa1712C293601'
    

    암호 화 해시
    Web3.sha3
    classmethod Web3.sha3(primitive=None, hexstr=None, text=None)
    

    주어진 값 을 되 돌려 줍 니 다 Keccak SHA256.하 쉬 를 계산 하기 전에 텍스트 는 솔 리드 티 처럼 UTF - 8 로 인 코딩 되 었 다.다음 의 모든 방식 은 유효 하고 같다.
    >>> Web3.sha3(0x747874)
    >>> Web3.sha3(b'\x74\x78\x74')
    >>> Web3.sha3(hexstr='0x747874')
    >>> Web3.sha3(hexstr='747874')
    >>> Web3.sha3(text='txt')
    HexBytes('0xd7278090a36507640ea6b7a0034b69b0d240766fa3f98e3722be93c613b29d2e')
    

    Web3.soliditySha3
    classmethod Web3.soliditySha3(abi_types, value)
    Sha 3 를 되 돌려 줍 니 다. 제공 하 는 valueabi_types 에 따라 solidity Sha3 함수 로 계산 합 니 다.abi_types 제공 하 는 모든 값 에 대응 하 는 solidity 형식 문자열 의 목록 이 어야 합 니 다.
    >>> Web3.soliditySha3(['bool'], True)
    HexBytes("0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2")
    
    >>> Web3.soliditySha3(['uint8', 'uint8', 'uint8'], [97, 98, 99])
    HexBytes("0x4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45")
    
    >>> Web3.soliditySha3(['uint8[]'], [[97, 98, 99]])
    HexBytes("0x233002c671295529bcc50b76a2ef2b0de2dac2d93945fca745255de1a9e4017e")
    
    >>> Web3.soliditySha3(['address'], ["0x49eddd3769c0712032808d86597b84ac5c2f5614"])
    HexBytes("0x2ff37b5607484cd4eecf6d13292e22bd6e5401eaffcc07e279583bc742c68882")
    
    >>> Web3.soliditySha3(['address'], ["ethereumfoundation.eth"])
    HexBytes("0x913c99ea930c78868f1535d34cd705ab85929b2eaaf70fcd09677ecd6e5d75e9")
    

    모듈 모듈
    웹 3. py 는 JSON - RPC 기능 을 여러 모듈 에서 분할 하 였 으 며, 이 모듈 들 은 JSON - RPC 방법의 네 임 스페이스 에 느슨하게 대응 하 였 다.
    빠 른 속도 로 python 개발 이 더 리 움 학습 을 시작 하고 자 하 는 사람 은 이것 을 볼 수 있 습 니 다. python 이 더 리 움 은 주로 python 엔지니어 가 웹 3. py 를 사용 하여 블록 체인 이 더 리 움 개발 에 대한 상세 한 설명 입 니 다.
    기타 이 더 리 움 관련 강좌:
  • 웹 3j 튜 토리 얼 은 주로 자바 와 안 드 로 이 드 프로그래머 를 대상 으로 블록 체인 이 더 리 움 개발 한 웹 3j 에 대한 상세 한 설명 입 니 다.
  • 이 더 리 움 튜 토리 얼 은 주로 스마트 계약 과 dapp 응용 개발 을 소개 하여 입문 하기에 적합 하 다.
  • 이 더 리 움 개발 은 주로 node. js, mongodb, 블록 체인, ipfs 를 사용 하여 탈 중심 화 전자상거래 DApp 실전 을 실현 하여 진급 에 적합 합 니 다.
  • phop 이 더 리 움 은 주로 phop 을 이용 하여 스마트 계약 개발 상호작용 을 하고 계 정 생 성, 거래, 이체, 토 큰 개발 과 필터 와 사건 등 내용 을 소개 한다.

  • 회 지 망 오리지널 번역, 전재 출처 표시 해 주세요.여 기 는 원문 입 니 다.

    좋은 웹페이지 즐겨찾기