Return to site

[issue #1] 구조적 문제 해결중

안녕하십니까! 인서트코인 개발자 Brandon 입니다.

원래 계획대로라면, 2월 28일 전체 소스 공개를 진행했어야 합니다만, 현재 구조적인 문제를 개선하기 위하여, 지연이 되고 있는 상황입니다.

현재까지 제작된 내용은 다음과 같습니다.

1. ETH로 게임 플레이 및 전송, 보상 등 가능 기능

2. INCO(InsertCoin의 토큰)로 게임플레이 및 전송, 보상, ETH로 반환 가능 기능

그런데, 최종 테스트 중 발생한 문제가, 게임 클라이언트(1인)가 스스로 1분 안에 10여회 이상의 트렌젝션을 발생시킬 경우, 지연시간이 심각해져서 심지어는 하루가 걸려야 제대로 완료되는 경우도 발생하고 있습니다.

또한, dApp 이기 때문에, 클라이언트가 직접 블록체인과 연결되어 트렌젝션을 일으키는데, 게임의 경우, 그 특성상 게임의 중요로직등을 변경하는 등의 크래킹을 통해서, 악의적으로 ETH를 가로채는 등의 행위가 가능한 상황입니다.

이를 개선하기 위해서 다음과 같이 재조정 예정입니다.

1. 각 개발사가 자신의 블록체인 노드의 역할을 하는 서버를 구축 ( 게임 로직을 여기서 처리해서 사용자의 ETH 등의 자산을 보호합니다. )

2. 게임 클라이언트는 블록체인에서 Gas가 불필요한 트렌젝션( 말 그대로 Read 의 기능 )만을 수행하도록 구성하여, 블록체인 플랫폼에 부담을 주지 않는 구성으로 교체

이에 따라, 예정에 없던, 서버의 이더리움 블록체인 노드를 구성해야 하는 작업량이 추가되어, 현재 작업중입니다.

관련 수정이후에 예상되는 효과 및 단점은 다음과 같습니다.

1. 서버에서 사용자의 이더리움 지갑(Online Wallet)을 따로 관리하게 되기 때문에, 이 서버에 사용자의 이더리움 지갑 키를 보관하게 되므로, 혹시라도 서버가 해킹될 경우, 해당 서버에서 생성한 이더리움 지갑들에 대한 보안에 위협이 됩니다. ( 이를 해결하는 유일한 방법은 유저들이 자주 해당 서버 지갑에서, 자신의 개인지갑으로 자산을 이전하여 보관해야 합니다. )

2. 트렌젝션 속도는 여전히 문제가 되지만, 서버에서 쓰레드를 통한 폴링방식으로 트렌젝션을 적당한 속도로 유지하게 가능하므로, 클라이언트들 끼리 무자비하게 보내는 상황은 개선될 수 있으리라 보입니다.

 

그럼, 또 추후 진행내용 공유드리겠습니다.

All Posts
×

Almost done…

We just sent you an email. Please click the link in the email to confirm your subscription!

OKSubscriptions powered by Strikingly