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

Memcached를 이용한 php - 설치와 예제

 

Memcached를 이용한 php - 설치와 예제


Memcached 의 활용

웹서버 같은 트래픽이 많은 서비스에서 memcache를 사용하면 DB부하나 불필요한 I/O를 줄일수 있습니다.

예를 들어 홈페이지 메인의 HTML에 노출되는 Data를 웹캐싱으로 처리하면 대량의 트레픽이 발생 하더라도 DB의 부하를 주지 않을 수 있습니다.

특정 Interval간 변하지 않는 데이터를 memcache에 캐싱하면 DB를 읽지 않아 부하를 경감할 수 있습니다.

주로 Data를 DB에 넣지 않고 사용자 끼리 통신을 하는 채팅이나 메시지서비스 등에 활용하면 효과적입니다.

 

 

Memcached 설치

 

1. install_memcached.sh 를 아래 내용으로 만들어 Root 계정으로 실행 

 

# 다음과 같이 소스 다운로드와 설치 옵션을 함께 스크립트로 작성합니다.

 VER="1.4.15"

arc_name="memcached-$VER.tar.gz"


if [ ! -f "$arc_name" ]
then
    wget http://memcached.googlecode.com/files/memcached-$VER.tar.gz -O $arc_name
fi


yum install -y "libevent*"  # 필요한 패키지 설치

tar xvzf "$arc_name"



cd "memcached-$VER"

OPTIONS=" --with-libevent=/usr "
./configure $OPTIONS && make && sudo make install



cp -p scripts/memcached.sysv /etc/rc.d/init.d/memcached
chmod 755 /etc/rc.d/init.d/memcached
ls -al /etc/rc.d/init.d/memcached


/etc/rc.d/init.d/memcached stop

 

 

 

2. memcached 서비스 실행 파일 수정 

 

memcached 실행을 위해서  "/etc/rc.d/init.d/memcached"  파일을 수정합니다.  # by cdr

 

다음과 같이 memcached 서비스 파일을 수정하여 memcached를 시작하고 종료 할수 있도록 설정합니다.

#> /etc/rc.d/init.d/memcached start
#> /etc/rc.d/init.d/memcached stop

 

 

start () {
    echo -n $"Starting $prog: "
    # insure that /var/run/memcached has proper permissions
   ls /var/run/memcached 2>/dev/null || mkdir -p  /var/run/memcached   # Added
    chown $USER /var/run/memcached
    daemon $memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
}

 

 

 

3. [예시] Memcached를 이용한 PHP 소스 

 

[php 샘플]

 

<?

   function memcached_handle($DEBUG=0){
       $memcache = new Memcache;
       $memcache->connect('localhost', 11211) or die ("Could not connect");

       $version = $memcache->getVersion();

       // Server Connect
       if($version != '' ){
           debug("memcached_handle", "version:$version", $DEBUG);
           return $memcache;
       }else{
           return '';
       }
   }

   function memcached_set($memcache, $m_key="key", $m_msg="test", $ttl=20, $DEBUG=0){

       $memcache->set($m_key, $m_msg, MEMCACHE_COMPRESSED, 10) or die ("Failed to save data at the server");
       $get_result = $memcache->get($m_key);

       debug(" > memcached_set::","Store data in the cache (data will expire in 10 seconds)", $DEBUG);
       debug(" > func->memcached_set", " Make m_key : $m_key  time:[$ttl] sec------>", $DEBUG);
       //debug(" > func->memcached_set", $get_result, $DEBUG);

       return $get_result;
   }



   function memcached_get($memcache, $m_key="key", $DEBUG=0){

       $get_result = $memcache->get($m_key);
       debug(" > func->memcached_get", " Get Cache [$m_key] ", $DEBUG);

       return $get_result;
   };



   function memcached_getSet($memcache, $m_key="key", $m_msg="test", $ttl=20, $DEBUG=0){

       $msg_get = memcached_get($memcached, $service_key, $DEBUG);

       $mem_set = memcached_set($memcache, $m_key, $m_msg,  $ttl, $DEBUG);

       $get_result = memcached_get($memcached, $service_key, $DEBUG);

       debug("memcached_getSet->memcached_get", "[#1]=====================", $DEBUG);
       debug("memcached_getSet->memcached_set", "[#2]====================", $DEBUG);
       debug( ">> memcached_getSet :",$get_result,  $DEBUG);

       return $get_result;
   }



   // 특정 URL의 XML 데이터를 로딩한다.

   function get_service_data($service_name="http_result", $DEBUG=0){
       $service_url ="http://localhost/grid_exe/_lib/load_{$service_name}.php";
       $service_msg = file_get_contents($service_url);
       return $service_msg;
   }



  // Main 함수  : 캐시가 없으면 Data를 로드하여 캐시에 담고 리턴한다.

   function memcached_Cache( $service_name="http_result", $service_ttl=30, $DEBUG=0){

        $service_key = "key_".$service_name;

        $memcached = memcached_handle( $DEBUG);
        // Check cache data exists
        $msg_get = memcached_get($memcached, $service_key, $DEBUG);

        debug("memcached_Cache-> memcached_handle::","[# memcached.connect]", $DEBUG);
        debug(" > memcached_handle::", $memcached, $DEBUG);
        debug(" > memcached_get ","[# $service_key.key] ", $DEBUG);
        debug(" > memcached_get", $mem_get, $DEBUG);

        if( ! $msg_get ){

             // 특정 URL의 XML 데이터를 로딩한다.

            debug("memcached_Cache :::[ MAKE NEW CACHE  ]===================>> ", $DEBUG);

            $service_msg = get_service_data($service_name);
            $mem_set = memcached_set($memcached, $service_key, $service_msg, $service_ttl, $DEBUG);

                          debug(" ++ get_service_data XML ","[# $service_name : service_name]===", $DEBUG);
            debug(" >>>> memcached_set ","[# $service_key:service_key]=========", $DEBUG);
            //debug(" >>>> memcached_set ", $mem_set, $DEBUG);

            return $service_msg;
        }else{
             // With Cached Data
             return $msg_get;
        }
  }

?>

 

.

댓글

이 블로그의 인기 게시물

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

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

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