요즘 계속 가상화폐 거리길래 집에 남는 PC랑 그래픽카드를 사용해서 해보려고 한다.

 

사실 그래픽카드가 너무 비싸져서 좀 빡치는 감이 없지않아서 뭐길래 궁금해서 해봤다.

 

우선 나도 블록체인 개발에 관여가 되어있기 때문에 기본적으로 1개를 채굴하기 위해선 엄청난 경쟁이다. 

 

그렇기 때문에 일반 사람들은 엄두도 못냈었는데 알아보니 마이닝 풀이란 개념이 있어서 여러 대의 PC를 연결하여 하나의 슈퍼 컴퓨터 처럼 사용하여 채굴하는 방식인데 이 개념을 이용하여 채굴하여 자신의 PC가 기여한 만큼 보상을 준다.

 

아무튼 구글에 마이닝 풀 검색하면 여러개가 나온다.

 

나는 마이닝풀허브를 사용해봤다.

 

사이트에 들어가면 아래의 그림처럼 나온다.

회원가입 절차도 간단하다. 회원가입을 하면 옆에 간단한 채굴 방법이라고 나온다. 사실 1,2번까지는 이해하겠지만 3번부터는 뭔지 모르겠다.

 

우선 회원 가입을 하면 자동 환전을 설정을 한다.

자동환전이란 내가 비트코인을 채굴하면 자동으로 왼쪽에 있는 코인 자동환전에 설정한 코인으로 자동 환전이 되는 구조다.

그럼 오른쪽에 거래소 현황 및 코인별 환전 설정은 지금 비트코인이랑 이더리움은 OFF가 되어있는데 이거는 비트코인을 채굴하면 자동 환전을 하지 않겠다는 뜻 인것 같다. 각자 자신이 환전하고 싶은 코인으로 세팅하고 밑에 업데이트 버튼이 눌러 세팅을 하면된다.

 

이제 원하는 풀에서 채굴 프로그램을 받아 사용하면 된다. 나는 이더리움을 해봤다. 딱히 다른거 해볼 생각은 없고 들리는 얘기로는 이더리움을 많이해서...

이더리움을 클릭하면 아래처럼 나오고 밑으로 스크롤을 쭉 내리면 AMD/NVIDIA 프로그램이 나온다.

나는 피닉스 마이너를 사용했다. 클릭해서 다운로드 받으러 들어가면 처음 화면에서 아래로 스크롤을 내리다보면 Quick start가 있다. 물론 클릭해서 다운을 받는데 크롬에서는 보안성 때문에 다운이 안된다. 그래서 나는 MS edge를 사용했다. 윈도우 사용자라면 기본적으로 설치 되어있으니 참고만...

다운 받아 압축을 풀면 아래 폴더 구성이 되어있다. 그러면 strat_miner.bat 이란 파일을 우클릭해서 편집을 누른다.

그러면 메모장이 하나 켜지는데 안에 있는 내용을 다 지우고 피닉스 마이너를 받을 때 마이닝풀허브 페이지에서 설정예시가 있다. 거기서 username을 자신의 계정 ID로 변경하고 workername은 채굴기를 많이 돌리니 채굴기 이름의 느낌으로 생각하면된다. 그래서 home1뭐 이런식으로 해도되고 아니면 그냥 무작위로 작성해도 된다. 저장 후 실행을 하면

실행을 하면 아래처럼 명령프롬프트 창이 하나 켜지면서 쫙 스크롤이 내려간다. 그러면 끝났다고 봐도 무방하다.

'IT > general' 카테고리의 다른 글

[VSCode] 원격 SSH 접속  (0) 2021.10.08
[IDE] 이클립스 설치  (0) 2021.06.03
[통신 프로토콜] MQTT  (0) 2021.05.21
성능 테스트 도구 JMeter 설치 및 간단 사용  (0) 2020.11.17
비주얼 스튜디오 코드 한글 사용  (0) 2020.09.21

MQTT는 Message Queue Telemetry Transport의 축약으로, IoT나 메시지 전송 서버 등에 사용하기 적합한 통신 프로토콜 중 하나다.

 

MQTT는 HTTP와는 다르게 중심 서버의 역할을 하는 중개자(broker)가 있고, 토픽을 발행하는 발행인(publisher)이 있으며, 구독자(subscriber)는 발행된 토픽을 통해 중개자로부터 메시지를 받아온다. 그리고 이러한 발행과 구독은 브로커가 관리하게 된다.

 

브로커는 서버에 개념과는 조금 다릅니다. 그렇기 때문에 Client를 개발할 때 따로 브로커를 개발할 필요가 없습니다. 예를 들면 Client1, Client2가 있는데 Client1이 Client2에게 메시지를 보내려고 하면 Client들이 동일한 토픽을 구독을 한 후 Client1이 브로커에게 해당 토픽을 통해 메시지를 보내면 브로커는 해당 토픽을 구독하는 Client들에게 메시지를 전달합니다. 그렇기 때문에 정확하게 1:1 통신은 아닙니다. 브로커 중 하나인 모스키토를 설치해보고 직접 Client에서 test 모스키토가 아닌 로컬 브로커를 사용해보는 게 좋을 것 같다.

https://mosquitto.org/download/

 

QoS - MQTT 에서는 3단계의 QoS를 제공한다. - IBM 참조

 

0 레벨은메시지는 최대 한 번 전달되거나 전혀 전달되지 않습니다. 이 네트워크 간 전달은 수신 확인되지 않습니다. 메시지는 저장되지 않습니다. 클라이언트 연결이 끊어지거나 서버가 실패하는 경우 메시지는 손실될 수 있습니다. QoS=0은 가장 빠른 전송 모드입니다. 이 모드는 "실행 후 삭제"라고도 합니다. MQTT에서는 서버가 QoS=0의 발행물을 클라이언트에 전달하지 않아도 됩니다. 서버가 발행물을 수신할 때 클라이언트 연결이 끊어지는 경우 서버에 따라 발행물을 제거할 수 있습니다. 텔레메트리(MQXR) 서비스에서는 QoS=0으로 송신된 메시지를 제거하지 않습니다. 해당 메시지는 비지속 메시지로 저장되고 큐 관리자가 중지되는 경우에만 제거됩니다.

 

1 레벨은 기본 전송 모드입니다. 메시지는 항상 최소 한 번 전달됩니다. 송신자가 수신확인을 수신하지 않는 경우, 메시지는 수신확인이 수신될 때까지 DUP 플래그가 설정되어 다시 송신됩니다. 따라서 수신자에게 동일한 메시지가 여러 번 전송되고 이를 여러 번 처리할 수도 있습니다. 메시지가 처리될 때까지 송신자와 수신자는 메시지를 로컬에 저장해야 합니다. 메시지는 처리된 후에 수신자로부터 삭제됩니다. 수신자가 브로커인 경우, 메시지는 구독자에게 발행됩니다. 수신자가 클라이언트인 경우 메시지는 구독자 애플리케이션에게로 전달됩니다. 메시지가 삭제된 후 수신자는 송신자에게 수신확인을 송신합니다. 수신자로부터 수신확인을 받고 나면 송신자로부터 메시지가 삭제됩니다.

 

2 레벨은 메시지는 항상 정확히 한 번만 전송됩니다. 메시지가 처리될 때까지 송신자와 수신자는 메시지를 로컬에 저장해야 합니다. QoS=2는 가장 안전하지만 가장 느린 전송 모드입니다. 메시지가 송신자에서 삭제되기 전에 송신자와 수신자 사이에 최소 두 쌍의 전송이 발생합니다. 메시지는 첫 번째 전송 후에 수신자 측에서 처리될 수 있습니다. 첫 번째 전송 쌍에서 송신자는 메시지를 전송하고 수신자에게서 메시지를 저장했다는 수신확인을 받습니다. 송신자가 수신확인을 수신하지 않는 경우, 메시지는 수신확인이 수신될 때까지 DUP 플래그가 설정되어 다시 송신됩니다. 두 번째 전송 쌍에서 송신자는 수신자에게 메시지 PUBREL의 처리를 완료할 수 있다고 전달합니다. 송신자가 PUBREL 메시지의 수신확인을 수신하지 않은 경우 수신확인이 수신될 때까지 PUBREL 메시지가 다시 송신됩니다. 송신자는 PUBREL 메시지에 대한 수신확인을 수신하면 저장했던 메시지를 삭제합니다. 메시지를 다시 처리하지 않는다는 가정 하에 수신자가 첫 번째 또는 두 번째 단계에서 메시지를 처리할 수 있습니다. 수신자가 브로커인 경우 이는 메시지를 구독자에게 발행합니다. 수신자가 클라이언트인 경우 메시지는 구독자 애플리케이션으로 전달됩니다. 수신자는 송신자에게 메시지 처리가 완료되었다는 완료 메시지를 송신합니다.

 

 

이런것까지 해볼줄 몰랐다...

밑에 링크에서 다운 받을 수 있다. 

다운로드 URL : http://jmeter.apache.org/download_jmeter.cgi

 

Apache JMeter - Download Apache JMeter

Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava

jmeter.apache.org

링크에서 받았는데 플러그인도 추가가 하기 힘들다.

그렇기 때문에 다른 블로그들 보고 하기 어려웠다. 밑에서 TPS하면서 플러그인 추가가 있다.

우선 다운로드 받은 후 압축을 풀어주고, /bin 폴더 하위에 있는 jmeter.bat 파일을 실행해주면 프롬프트 나오면서 조금 기다리면 된다.

기본 구성일 것 같다. 사실상 HTTP Request 밑에부턴 테스트 지표라고 할 수 있다. 

Test Plan(우클릭) -> Add -> ThreadsGroup 을 눌러 추가시켜준다.

1. ThreadGroup(우클릭) -> Add -> Sampler -> Http Request을 눌러준다.
2. ThreadGroup(우클릭) -> Add -> Listener -> View Results Tree
3. ThreadGroup(우클릭) -> Add -> Listener -> Summary Report
4. ThreadGroup(우클릭) -> Add -> Listener -> Transaction Per Second

문제는 TPS가 난 없었다. 그래서 따로 다운받아서 추가시켜줬다.

밑에 링크에서 받아서 lib 폴더를 합쳤다.

jmeter-plugins.org/wiki/TransactionsPerSecond/

폴더안에 넣어주고 재시작을 하게되면 생겨있다. 

스레드 설정화면을 보면

Number of Threads(users)

가상의 생성자를 몇 명으로 설정할건지에 대한 값이다. (= 몇 개의 쓰레드를 생성할 것인지의 값이다)

이 값이 커질수록 당연히 서버는 많은 부하를 받을 것이다.

Ramp-up Period(in seconds)

한번의 실행을 몇초 동안 완료 시킬것인지에 대한 설정값

Loop Count

반복하고자 하는 횟수

 

HTTP Request 설정을 보자

Protocol, IP or Server Name, method, Path, Body Data, Param을 Postman 처럼 입력하면 된다.

비주얼 스튜디오 코드를 다운 받으면 한글패치가 되지 않은 영문판이 실행됩니다.

당황하지않고 code 에디터 안에 마켓플레이스에서 Korean Language Pack for Visual Studio Code를 설치해주면 됩니다.

영문판이니 install 누르시고 code를 껏다 키면 한글판 패치가 되어있을겁니다.

 

콜백함수란 다른 함수의 매개변수로 함수를 전달하고, 어떠한 이벤트가 발생한 후 매개변수로 전달한 함수가 다시 호출되는 것을 의미한다. callback은 쉽게 말하자면 어떤 일을 다른 객체에게 시키고, 그 일이 끝나는 것은 기다리지 않고 끝나고 부를 때까지 다른 일을 하는 것을 말한다. 만약 1번 함수를 실행을 하고 1번 함수의 실행이 끝마친 다음에 2번 함수를 실행해야 하는 경우가 생긴다면 콜백을 이용하면 된다.

 

일반적인 함수 구조

일반적으로는 파라미터를 받아 함수 내부에서 사용하여 결과값을 return 할 수 있는 구조로 되어 있다. 

 

콜백 함수 구조

콜백 함수는 다른 함수에 파라미터로 이용되는 함수이며 어떤 함수에 의해 호출되어지는 함수이다.

 

+ Recent posts