Libplanet 0.2 버전은 P2P 통신의 NAT 우회(TURN/STUN 구현)를 지원하여 공유기 환경에서의 통신을 가능하게 했습니다. 게임 환경에 맞춘 트랜잭션 모델로 Sender-Recipient 대신 Signer-UpdatedAddresses 개념을 도입했으며, 상태 접근 API를 개선하여 RequestStates() 제거 및 변경 기록 기반의 상태 갱신 방식을 채택했습니다. 또한 액션의 서브타입 다형성 처리를 명시…
7 min read
Libplanet 0.2 릴리스 주요 변경 사항
Source
Evernote/Inbox/Libplanet 0.2 릴리스.md
Summary
Libplanet 0.2 버전은 P2P 통신의 NAT 우회(TURN/STUN 구현)를 지원하여 공유기 환경에서의 통신을 가능하게 했습니다. 게임 환경에 맞춘 트랜잭션 모델로 Sender-Recipient 대신 Signer-UpdatedAddresses 개념을 도입했으며, 상태 접근 API를 개선하여 RequestStates() 제거 및 변경 기록 기반의 상태 갱신 방식을 채택했습니다. 또한 액션의 서브타입 다형성 처리를 명시화하고 PolymorphicAction 데코레이터를 제공하여 유연성을 높였습니다.
Key Points
NAT 우회 지원: TURN 및 STUN 프로토콜 구현을 통해 공인 IP가 없는 피어 간 P2P 통신 가능
트랜잭션 모델 변경: 비트코인식 Sender-Recipient 구조에서 게임 특화 Signer-UpdatedAddresses 구조로 전환
상태 접근 API 개선: RequestStates() 제거, IActionContext.PreviousStates를 통한 변경 기록 기반 상태 갱신 도입
액션 다형성 분리: Transaction가 구체 클래스만 허용하도록 변경, 기존 다형성 사용 시 PolymorphicAction 데코레이터 제공