2016-10-29 7 views
2

저는 사용자가 ether로 구입 한 항목에 대해 비용을 지불 할 수있는 Android 애플리케이션을 제작 중입니다. 응용 프로그램은 개인 ethereum 네트워크를 사용합니다.안드로이드 드레인 배터리에 개인 네트워크의 ethereum 노드가 있습니까?

내가 알기로, 나는 안드로이드 장치에서 ethereum 노드를 별도의 프로세스로 실행해야하고 안드로이드 앱은 명령을 전송하거나 JSON RPC를 통해 통신해야한다.

안드로이드는 전력 소비에 대해 매우 염려하기 때문에 안드로이드는 별도의 프로세스를 지속적으로 실행할 수 있습니까? 몇 시간 후에 안드로이드가 그 과정을 죽이게 될까요?

또한 장치에서 노드를 계속 실행하면 배터리가 많이 소모됩니까?

답변

0

예, 그렇습니다. 기본적으로 두 가지 옵션이 있습니다. 중앙 서버/클라이언트 설정을 만듭니다. 여기에서 android app은 JSON RPC 쿼리를 특정 앱에 대해 설정 한 HttpProvider로 보내거나 Light 클라이언트를 실행합니다.

필자는 필요한 경우 전체 노드에만 연결하는 간단한 클라이언트 (LES protocol)를 실행하는 방법을 생각합니다. 가벼운 클라이언트는 현재 많이 개발되었으며 일부 베타 테스트가 이미 진행 중입니다.

light client roadmap을 확인하십시오. 6 월에 경량 클라이언트 테스트가 공개되었습니다. running a fork of the go-ethereum client으로 테스트 할 수 있습니다.

  • git clone -b light-stable https://github.com/zsfelfoldi/go-ethereum.git
  • 이동 1.6으로 구축
  • 을 빛 클라이언트 모드의 --light 플래그를 추가 (콘솔 모드 geth --light console를 실행) (이전 버전의 컴파일되지 않습니다) 당신은 또한 수 --testnet 플래그를 지정하거나 --oppose-dao-fork 플래그가
  • 인 원래의 unforked "classic"체인을 지정하여 testnet에서 실행하면 동일한 (기본값) d로 라이트 클라이언트를 실행할 수 있습니다 표준 클라이언트와 함께 사용하는 디렉토리에서 표준 "chaindata"대신 별도의 "lightchaindata"데이터베이스 디렉토리를 사용하므로 정규 체인 데이터베이스를 간섭하지 않습니다 (동일한 datadir로 동시에 두 개를 실행할 수는 없습니다) .
  • 초기 동기화는 신뢰할 수있는 검사 점에서 시작합니다 (나중에 이는 신뢰할 수없는 방식으로 구현됩니다). 과거의 헤더는 요청에 따라 계속 액세스 할 수 있습니다. 신뢰할 수있는 체크 포인트는 mainnet 및 testnet 모두 소스에 하드 코드됩니다.

당신이 질문을 할 수있는 전용 gitter channel 있습니다.