Kraken api - get token with python

Kraken api - get token with python an example of how you can generate a WebSocket authentication token using Python for Kraken's API: ```python import time import base64 import hashlib import hmac import urllib.request import json # Replace with your Kraken API public and private keys api_key = 'YOUR_API_PUBLIC_KEY' api_secret = 'YOUR_API_PRIVATE_KEY' # API endpoint and parameters api_path = '/0/private/GetWebSocketsToken' api_nonce = str(int(time.time() * 1000)) api_post = 'nonce=' + api_nonce # Create the SHA256 hash api_sha256 = hashlib.sha256(api_nonce.encode('utf-8') + api_post.encode('utf-8')).digest() # Create the HMAC signature api_hmac = hmac.new(base64.b64decode(api_secret), api_path.encode('utf-8') + api_sha256, hashlib.sha512) api_signature = base64.b64encode(api_hmac.digest()) # Create the request api_request = urllib.request.Request('https://api.kraken.com' + api_path, api_post.encode('utf-8')) ap

(블록체인) Truffle 설치 - 스마트 계약 개발 환경 구성 (truffle, ganache-cli, solc )

 



Truffle 설치 와 스마트 계약(Smart Contract) 개발

1. Truffle 설치 - 스마트 계약 개발 환경 구성 (truffle, ganache-cli, solc )
    - npm install -g truffle
    - npm install -g ganache-cli
    - npm install -g solc

2. Truffle 사용 - 스마트 계약(Smart Contract)개발
   - truffle create contract YourContractName
   - truffle create test YourTestName 

3. [Truffle 환경 설정] 컴파일 오류 대처 - Error: Failed to fetch the Solidity compiler from the following locations:
     - Are you connected to the internet?

4.  [Truffle 환경 설정] Deploy 오류 대처 - Error: Could not find artifacts for SimpleStorage from any sources
  - throw new Error("Could not find artifacts for " + import_path + " from any sources");

 



 

1. Truffle 설치 - 스마트 계약 개발 환경 구성 (truffle, ganache-cli, solc )

 
Truffle은 Ethereum 스마트 계약(Smart Contract)을 개발하고 배포하기 위한 강력한 개발 도구이며, Ethereum 블록체인 기반의 분산 응용 프로그램(DApp)을 더욱 쉽게 개발할 수 있도록 지원합니다. Truffle은 개발자들이 스마트 계약, 테스트 및 배포를 관리하는 데 도움이 되는 다양한 기능을 제공합니다.
 
Truffle은 스마트 계약(Smart Contract)을 개발하고 컴파일, 배포, 테스트 하는 과정을 쉽게 할 수 있습니다.
1. smart contract의 컴파일 (compile) : solc, solcjs로 solidity 소스를 컴파일 합니다.
2. smart contract의 배포 (migrate) : 컴파일한 소스를 배포 할 수 있습니다.
3. smart contract의 테스트 (test) : 배포된 contract를 테스트 합니다.
 
 

1. Truffle 의 주요 기능

1. 스마트 계약 개발:
Truffle은 스마트 계약을 Solidity와 같은 Ethereum 지원 언어로 작성할 수 있도록 지원합니다. 개발자들은 Truffle을 사용하여 스마트 계약을 빠르고 효율적으로 개발할 수 있습니다.

2. 스마트 계약 컴파일 및 배포:
Truffle은 스마트 계약을 컴파일하고 Ethereum 네트워크에 배포하는 데 필요한 작업들을 자동화하여  빠르게 배포하고 테스트할 수 있습니다.

3. 스마트 계약 테스트:
  Truffle은 스마트 계약의 기능을  테스트하고  스마트 계약의 동작을 확인하고 버그를 찾아내는데 도움을 줍니다.

4. Migrations:
  Truffle은 스마트 계약의 배포를 관리하는 "Migrations" 기능을 제공하고  스마트 계약의 업그레이드와 버전 관리를 수행할 수 있습니다.

6. 자산 관리:
 - Truffle은 블록체인 기반의 자산 (예: 토큰)을 쉽게 관리할 수 있는 기능을 제공합니다.

 
Truffle은 개발자들이 Ethereum 블록체인을 활용한 분산 응용 프로그램 (DApp)을 개발하는데 매우 유용한 도구이며, Ethereum 개발 생태계에서 스마트 계약의 개발과 관리를 보다 편리하고 효율적으로 수행할 수 있습니다.
 
 

2. Truffle 설치 전 nodejs 환경 구성 (엄청 중요함)

    - truffle 은 개발 언어로  nodejs 환경을 이용하므로 설치 버전에 따라 작동이 안될수 있습니다. 저도 안되어서 한참 헤메었습니다. 
     * 특히 금융 전산망에서는 SSL을 통한 파일 다운로드가 안되어서 더 힘들게 설치하고 있습니다.
     반드시 truffle 설치전에 LTS (long-term support) 최신 Stable 버전을 확인하고  LTS 버전을 설치후에 진행 바랍니다.

     >> 인터넷에서  nvm을 이용한 nodejs 버전 관리 방법을 참조하여 설치 진행 바랍니다.
           (관련 게시글은 조만간 작성할 예정입니다.)

 

 

3. Truffle 설치 확인

#다음 명령어를 입력하여 트러플이 설치되어있는지 확인합니다.
$truffle

#트러플이 설치되어있지 않다면 (root 계정으로)
# npm install -g truffle 명령어를 입력해 설치합니다.


#truffle --version
Truffle v5.11.1 (core: 5.11.1)
Ganache v7.9.0
Solidity v0.5.16 (solc-js)
Node v18.17.0
Web3.js v1.10.0

 

  • npm:
  • Node.js 패키지 관리자로, Node.js 환경에서 소프트웨어 패키지를 설치하고 관리하는 도구입니다.
  • npm은 JavaScript 생태계에서 매우 인기있는 패키지 관리자로 사용되며, 수많은 패키지를 쉽게 다운로드 및 관리할 수 있게 해줍니다.

 

  • npm  install:
  • npm 명령어 중 하나로, 패키지를 설치하는 데 사용됩니다. npm install 명령은 지정된 패키지를 현재 프로젝트에 로컬로 설치합니다.

 

  • npm install  -g: 
  • npm install 명령에 붙이는 옵션으로, 패키지를 전역(global)으로 설치하도록 지정합니다. 전역 설치를 하면 해당 패키지는 시스템 전체에서 사용할 수 있습니다. 일반적으로 독립적인 도구 또는 프레임워크와 같은 것들을 전역 설치합니다.

 

  • npm install -g truffle 명령:
  • Node.js 패키지 관리자인 npm을 사용하여 Truffle 프레임워크를 시스템 전체에 전역 설치하는 것입니다. 이로써 Ethereum 스마트 계약 개발과 관련된 다양한 작업을 수행할 수 있게 됩니다.

 
 

4. 설치 테스트

truffle 이 설치되었는지 확인하는 방법은 version을 이용할 수 있습니다. 
 2023.7월 현재 nodejs LTS 버전은  v18.17.0 이고 이 글을 보는 시점에는 LTS 버전이 다를수 있습니다.
반드시  https://nodejs.org/ko" 를 참조하여 확인후 nodejs도 설치 바랍니다.

[ipman@vm1 ~]$ truffle --version
Truffle v5.11.1 (core: 5.11.1)
Ganache v7.9.0
Solidity v0.5.16 (solc-js)
Node v18.17.0
Web3.js v1.10.0

 

아래 node v16 버전에서 작동하지 않습니다. 반드시 최신 LTS를 설치하고 진행 바랍니다.

[root@vm1 app_svc]# truffle version
Truffle v5.11.1 (core: 5.11.1)
Ganache v7.9.0
Solidity v0.5.16 (solc-js)
Node v16.18.1
Web3.js v1.10.0

 

만약 Truffle이 설치되지 않았다면, 해당 명령을 실행하면 command not found 또는 유사한 오류가 발생할 수 있습니다. 

 

5. truffle에 필요한 추가 개발 도구 설치

 

npm install -g truffle
npm install -g ganache-cli
npm install -g solc

 
Solidity 컴파일러 (solc)를 설치
Solidity 컴파일러를 설치합니다.
터미널 또는 명령 프롬프트에서 다음 명령을 사용하여 Solidity 컴파일러를 설치합니다.

npm install -g solc

설치가 완료되면, 다시 truffle test 명령을 실행하여 테스트를 수행 할 수 있습니다.
* 인터넷에 연결되어 있는지 않은 환경에서 다음과 같은 에러가 발생하므로 solc를 설치 해야 합니다.

Error: Failed to fetch the Solidity compiler from the following locations: 
https://relay.trufflesuite.com/solc/emscripten-wasm32/,
https://binaries.soliditylang.org/emscripten-wasm32/,
https://relay.trufflesuite.com/solc/emscripten-asmjs/,
https://binaries.soliditylang.org/emscripten-asmjs/,
https://solc-bin.ethereum.org/bin/,https://ethereum.github.io/solc-bin/bin/.
Are you connected to the internet?

 
ganache-cli 설치와 실행

npm install -g ganache-cli

ganache-cli  -h 0.0.0.0 -p 8545

ganache-cli는 로컬 개발용 Ethereum 블록체인을 구축해주는 명령줄 도구입니다. Truffle은 이를 자동으로 감지하고 사용할 수 있습니다. 
* 다음에  truffle test 명령을 실행할 때, Truffle은 ganache-cli가 실행 중인 로컬 블록체인과 상호작용하여 스마트 계약을 배포하고 테스트를 수행합니다. 이렇게 함으로써 실제 Ethereum 네트워크를 설치하지 않고도 테스트를 수행할 수 있습니다.

6. truffle 프로젝트 생성 

Truffle 프로젝트 생성: 새로운 스마트 계약 프로젝트를 만들기 위해 프로젝트 디렉토리를 생성합니다. 그리고 해당 디렉토리로 이동한 후에 다음 명령을 실행하여 Truffle 프로젝트를 생성합니다:

mkdir truffle
cd truffle

truffle init  # 현재 디렉토리를 초기화 합니다.

root@vm1 truffle2]# truffle init

Starting init...
================

> Copying project files to /app_svc/truffle2

Init successful, sweet!

Try our scaffold commands to get started:
  $ truffle create contract YourContractName # scaffold a contract
  $ truffle create test YourTestName         # scaffold a test

http://trufflesuite.com/docs

 
초기화된 폴더에서 샘플 스마트 계약과 테스트 스크립트를 작성합니다.

truffle create contract TestStorage
truffle create test TestStorage

# 다음과 같은 파일들이 작성이 되었습니다.
# ./contracts/TestStorage.sol
# ./test/test_storage.js
#./truffle-config.js

 

7. truffle-config.js 수정

다음과 같이 solc와 ganache  에 대한 설정을 "truffle-config.js"를 수정합니다.

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545, // ganache-cli가 사용하는 포트로 변경합니다.
      network_id: "*", // 어떤 네트워크 ID에도 연결합니다.
    },
  },
  compilers: {
    solc: {
      // version: "^0.8.0",
      version: "/usr/local/bin/solcjs",  // local에 설치된 solcjs를 확인합니다.
    },
  },
};

 
Truffle 의 기본 설정은 여기 까지 입니다. 다음 내용은 Truffle을 이용한 스마트 컨트렉트 작성을 참조 바랍니다.
 
* Truffle의 테스트 기능은 스마트 계약의 변경 사항이나 업데이트 후에도 기능들이 여전히 예상대로 동작하는지 확인하는 데에도 유용하며, Ethereum 블록체인과 상호작용하는 애플리케이션의 안정성을 향상시키는 데에 큰 도움을 줍니다.



출처 :Truffle설치 기초 :  https://couplewith.tistory.com/491

댓글

이 블로그의 인기 게시물

SSL/TLS 인증서 오류를 해결- 리눅스명령모음 - SSL certificate problem

(truffle 환경 설정) 스마트 계약 배포 와 truffle deploy 오류 해결 - Error: Could not find artifacts for SimpleStorage from any sources

자기주권 신원 (SSI Self-Sovereign Identity) 인증의 발전 그리고 정보 민주화 (Information Democratization)