장고 설치 배포 후 어느 정도 완성되어 도메인 구입 후 설정했는데 자꾸 "wecome to nginx!"페이지 만 나온다. 그래서 커스터머 서비스 쪽에도 물어보고 인터넷도 뒤져 본 결과 내 서버상 nginx 설정을 수정해야 한다는 사실을 깨닳았다.

수정해야 할 파일은 /etc/nginx/sites-available/ 안에 있는 nginx 설정 파일이다. 기존에 아이피 주소로 되어 있던 부분을 구입한 도메인 명으로 변경하니 잘 된다.

EOS는 확실히 다른 코인들과 운영 방식이 다르다. 비트코인이나 이더리움의 경우 블록체인에 어떤 액션을 취할 때 (예를 들면 코인을 송금할 때) 수수료를 부과한다. 하지만 EOS는 그렇지 않다. EOS는 송금할 때 수수료가 부과되지 않는다. 그 대신 계정을 만들 때 RAM, CPU, Network를 확보해야만 한다. 이 3가지 자원들을 확보해 놓아야  EOS 계정을 생성할 수 있다.

여기서 가장 희소성이 있고 귀한 자원은 RAM이다. RAM은 블록체인 내 정보를 저장하거나 수신 또는 송신할 때 필요하다. 다른 두가지 자원과  다르게 RAM은 한번 쓰면 없어지는 소모성 자원이다. 따라서 개발자는 RAM을 구매해야 하며 RAM의 가격은 시장의 수요와 공급에 따라 변동된다.

CPU는 컴퓨팅 시간 단위로 계산된다. A계정에서  B계정으로 EOS를 보내는 액션을 취하면 일정한 시간이 걸린다. 다3일간 사용할 수 있는 시간이  CPU 자원이다. 많은 양의 액션을 취하려면 많은 CPU를 확보해야 한다. 하지만 RAM과 다르게 시간이 지나면 다시 회복된다. 따라서 많은 양의 EOS를 Stake 해놓았다면 많은 양의 액션을 단 기간안에 수행할 수 있는 것이고 그렇지 않고 이미 CPU를 다 써버렸다면 일정 시간을 기다렸다가 액션을 취해야 한다.  Network는 CPU와 유사하지만 시간이 아닌 Byte로 측정된다. Network도 일정시간 이 지나면 다시 사용할 수 있으므로 EOS를 staked해 놓고 사용한다.  계정 주는 언제든 EOS를 staked 했다가 unstaked할 수 있다.

현재 1kb당 램 가격은 0.09 EOS로 보다 많은 EOS Dapp이 개발되면 개발될 수록 이에 대한 수요가 높아져 비싸질 것으로 예상된다.


This post is about how to catch and deal with parameter sent by post method from client.  First of all, you need to download and set up a middleware to achieve the goal.

The middleware's name is body-parser. You install body parser.

$ npm install body-parser --save

Then, set up in your app.js

// add middleware
app.use(bodyParser.json()); //suport json encoded bodies
app.use(bodyParser.urlencoded({extended:true}));//support encoded bodies

Then, play with it like one below. 

/*Ajax post*/
router.post('/postparams',function(req, res){
var receiver_acct = req.body.receiver_acct;
var memo = req.body.memo;
res.send(receiver_acct + " "+ memo);
});
module.exports = router;


This will work.


홈페이지를 반으로 나누는 것은 CSS만으로 간단히 가능하다. 일단 HTML5부분



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel='stylesheet' href='style.css' />
</head>
<body>
<div class="split left"> this is left part</div>
<div class="split right">this is right part</div>

</body>
</html>


일단 css경로는 같은 폴더에 있는 것으로 가정한다.

그리고 CSS코드

/* Split the screen in half */
.split {
height: 100%;
width: 50%;
position: fixed;
z-index: 1;
top: 0;
overflow-x: hidden;
padding-top: 20px;
}

/* Control the left side */
.left {
left: 0;
background-color: white;
}

/* Control the right side */
.right {
right: 0;
background-color: snow;
}



이러면 한쪽에는 흰색 백그라운드 칼라의 부분이, 그리고 오른 쪽은 스노우 칼라 백그라운드 부분이 생성된다.


끝.

'' 카테고리의 다른 글

CSS로 홈페이지 반드로 나누기.  (0) 2018.10.27
$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 9000

위의 명령어로 redirect를 할 수는 있지만 좀 더 안정적으로 forward하는 방법은 웹서버(nginx 등)을 이용하는 것이다.

Terminal multiplexer 라고 nohup과 같은 기능을 제공함. 즉, 명령어 실행 후 터미널을 닫아도 계속 실행되게 할 수 있음.

AWS EC2 돌릴 때와 같은 상황에서 유용함.

1. 인스톨 on Ubuntu.

$ sudo apt-get install tmux

2. tmux 실행

$tmux

3. tmux를 실행하면 터미널 하단에 초록색 띠같은게 생김.  tmux터미널이라고 부르겠음.

4. 거기서 명령어를 실행. (ex npm start)

5. 명령어가 실행됨.

6. ctrl b + d를 치면 tmux 터미널에서 빠져나옴.

7. command 는 background에서 계속 실행되고 있음. 터미널을 닫아도 마찬가지임. 

8. 다시 터미널에 접속한 후 tmux에서 실행되고 있는 작업을 확인하기 위해 아래의 명령어를 침.

$tmux ls

9. 그럼 tmux 로 인해 background에서 작업되고 있던 놈들이 맨왼쪽 작업번호화 함께 나옴.

10. 아래의 명령어를 치면 해당 작업번호의 tmux터미널로 이동. 

$tmux attach -t [작업번호]

11. ctrl+c를 통해 작업을 멈추고

12. ctrl+b+d를 통해 tmux 터미널을 벋어나면 background 작업을 멈출 수 있음.

13. 또 쓰다보면 세션에 이름을 붙이고 싶을 때가 있음.

14. 그럴땐

$tmux new-session -t [name]

[name] 부분에 원하는 세션 이름을 쓰면 됨.

15. 또 세션을 지우고 싶을 때도 있음.

그럴 땐

$tmux kill-session -t [session-name]

을 사용하면 됨.

아마존 AWC EC2 를 사용하기 위해서는 ssh 를 통해 접속해야 한다.

아마존 EC2에 NODEJS서버를 만들기위해 접속하는 방법.

1. key pair 가 있는 폴더에서 터미널 오픈

2. key pair 가 저장되어 있는 파일이름을 nodeeos.pem 이라고 한다면

3. 다음의 명령어로 ssh 접속.

$ sudo ssh -i nodeeos.pem ubuntu@[Public DNS]

*참고로 Public DNS 부분 입력 시 []를 생략해야한다.

리눅스에서 현재 열려있는 포트를 확인하기 위한 명령어는 아래와 같다.

$ sudo lsof -i -P -n | grep LISTEN

혹은

$ sudo netstat -tulpn | grep LISTEN

끝.

EOS 블록체인에서는 기존의 블록체인과는 다르게 계정을 만드는 게 좀 까다롭다.  비트코인이나 이더리움 블록체인에서는 간단하게 랜돔한 프라이빗키->퍼블릭키를 생성해 계정으로 사용할 수 있다. 하지만 EOS에서는 퍼블릭키, 프라이빗키와 더불어 account라는 것이 추가되었다. Account는 human-readable characters로서 정확하게 12자리의 알파벳으로 만들 수 있다. 12자 보다 짧아서도 안되고 길어서도 안된다. (물론 12자보다 짧은 account를 얻는 방법이 있긴 하지만 여기서는  언급하지 않겠다.)  그래서 EOS를 전송할 때는 퍼블릭키 대신 어카운트를 사용해 보낸다. 이메일과 비슷한 방식으로 보내기 때문에 외우기도 쉬워 EOS의 장점으로 꼽힌다. 다만, 이 어카운트를 만들 때 약간의 금전(EOS)가 필요하다는 점과  새 계정을 만들 때는 반드시 기존 계정을 이용해서 만들어야 한다는 점은 좀 불편할 수 있다.

위의 내용을 기본으로 하여 이번 포스팅에서는 기존 account가 있는 상태에서 새 account를 만드는 방법을 설명해 보겠다.

위에서 언급하였지만 새 account를 만들기 위해서 돈(EOS)가 든다. 이 부분에 대해 조금 더 설명하자면 비트코인이나 이더리움은 가상화폐를 전송할 때 수수료가 들지만 EOS는 전송 시 수수료는 들지 않지만 계정을 만들 때 돈이 든다. 왜냐하면 블록체인 내의 RAM을 구입해야 하기 때문이다. 간단히 비유하자면 전통적인 서버-클라이언트 구조에서 서버서를 빌릴 때 지불하는 금액으로 생각하면 되겠다. 메모리가 크고 빠른 서버를 구입하기 위해서는 더 많은 금액을 지불해야 하는 것 처럼 EOS 블록체인에서도 용량이 크고 빠른 dapp을 만들기 위해서는 좀 더 많은 EOS를 지불해 많은 컴퓨팅파워를 확보해야한다. 

두서 없이 말했다. 정리하자면 새 account를 만드는데 필요한 것은 아래와 같다.

1. 기존 EOS account

2. 기존 EOS account 내 EOS

기존 account 이름을 existing1234 이라 하고 새로 생성하려는 아이디를 creating1234(public key: EOSXXXX) 라고 하자. 다시 한번 명심해야 할 것은 EOS블록체인의 account 명은 반드시 12글자여야 한다는 점이다. 위 account명이 12자가 아니면 에러가 난다.

cleos를 이용해서 새 account를 만드는 명령어는 아래와 같다.

$ cleos system newaccount existing1234 creating1234 EOSXXX -stake-net "0.1 EOS" --stake-cpu "0.1 EOS" --buy-ram-kbytes 8

이렇게 하면 새로운 계정이 만들어진다. --stake-net "0.1 EOS"의 경우 account의 brandwidth를 0.1 EOS만큼 예치하여 사용 하겠다는 뜻이고 --stake-cpu는 계정의 cpu를 0.1 EOS를 예치하여 사용하겠다는 것이다.  

이상.

EOS 스마트계약은 C++로 작성되어 Web assembly 언어로 컴파일되어 실행된다. 여기서는 이 개발 툴(CDT)를 설치해 보겠다.

1) GIT HUB에서 clone 하기.

일단 임의 폴더에 clone 명령어를 통해 다운 받는다. 

$ git clone --recursive https://github.com/eosio/eosio.cdt --branch v1.2.1 --single-branch
cd eosio.cdt

2) 그리고 설치한다.

./build.sh


sudo ./install.sh


+ Recent posts