WEMIX3.0 Mainnet Q1 Update (v0.10.2)

WEMIX Compliance
WEMIX Communication
6 min readMar 23, 2023

Greetings from the WEMIX Team,

WEMIX3.0, released on October 20, 2022, is a high-performance open-source protocol designed based on decentralization, security, and scalability. The WEMIX team is committed to providing stable and robust services for users and ecosystem developers by continuously updating the WEMIX3.0 mainnet to keep up with the growth and expansion of WEMIX. As part of this effort, we have opened a GitHub repository related to the first quarter mainnet update. Details on the update are as follows:

> Update Information

  • Schedule: March 23rd (Thu) 15:00 KST — March 30th (Thu) 15:00 KST
  • All services will be available during the update, but the update schedule may be subject to change.
  • Service: WEMIX3.0 mainnet
  • Effect: Enhanced efficiency through the addition of new features and improvement of existing features, enhanced compatibility in accordance with the latest updates of Ethereum, etc.
  • Updates are not mandatory for end nodes that are operated externally.

> Update Details

Added Features

1) Changes to sort transactions in the block by in order of high gas prices in the block (Task Link)

  • Task Description: Transactions in the block will now be ordered by its gas price, meaning higher gas transactions will get priority over lower gas price transactions within the same block
  • Reason for the Task: In order to include as many transactions as possible in the block during block generation, the task of retrieving transactions is currently repeated several times, which does not allow for sorting by gas price order

2) Addition of a CLI flag to allow modification of the ‘TriesInMemory’ value (Task link)

  • Task Description: Addition of a CLI flag that allows modification of the ‘TriesInMemory’ value, which is an option for caching block state information using the execution machine’s memory
  • Reason for the Task: Since the value of ‘TriesInMemory’ is fixed at 128 blocks, it was only possible to retrieve the state of blocks up to previous 2 minutes for nodes that are not set up for archiving (which may affect balance inquiries for previous block periods)

3) Addition of the ‘eth_getReceiptsByHash’ JSON-RPC API (Task link)

  • Task Description: Addition of ‘eth_getReceiptsByHash’ JSON-RPC API to retrieve receipts information for all transactions within a specific block in one query
  • Reason for the Task: The existing API for retrieving receipts information for transactions requires separate RPC calls for each transaction, making it cumbersome to retrieve receipts for multiple transactions or blocks. This new API will simplify the process of retrieving receipts for multiple transactions within a block.

4) Addition of a script for safely shutting down a BP node (Task link)

  • Task Description: Addition of a script to safely shut down the BP Node’s application manually without affecting the network, even if the etcd leader status is ongoing or block mining is in progress
  • Reason for the Task: When the application is terminated while the etcd leader state or block mining is in progress, there may be a temporary interruption in block mining until the next target is selected. Therefore, a safe shutdown process is necessary either by transferring the target or waiting until the task is completed.

Modifications

1) Modification in the Default Value of TxLookupLimit Flag (Task Link)

  • Task Description: Modification in the default value of the TxLookupLimit, the setting value for the range of transaction information that can be queried, to 1 year (31,536,000 blocks) based on the WEMIX chain
  • Reason for the Task: The current default value of the TxLookupLimit flag is set to 1 year (2,350,000 blocks) based on the Ethereum chain, which only allows for detailed queries for approximately 27 days of block transactions based on the block generation time of the WEMIX chain.

2) Activate PORTABLE flag when building rocksdb (Task Link)

  • Reason for the Task: To activate the PORTABLE option when building rocksdb in order to prevent crash errors caused by contextual differences between the build machine and the execution machine

3) Change to prevent bootnode from automatically creating etcd clusters (Task Link)

  • Task Description: To remove the logic that automatically creates a new cluster if there is no etcd information when bootNode(bp1) is initiated
  • Reason for the Task: When there is a failure in bootNode(bp1) and etcd information is deleted and restored, a new cluster is created instead of participating in the existing etcd cluster.

Updates

1) Incorporating changes from the Ethereum Ploitari (v1.10.17) Release (Task Link)

2) Incorporating changes from the Ethereum Sharblu (v1.10.18) Release (Task Link)

Further announcements will be made in due course regarding the hard fork of the Mainnet Phase 2, which is expected to take place this summer.

Thank you.

안녕하세요, 위믹스팀입니다.

지난 10월 20일 출시된 WEMIX3.0 메인넷은 탈중앙화, 보안성, 확장성을 기반으로 설계된 고성능 오픈소스 프로토콜입니다. 위믹스팀은 위믹스의 성장과 확장에 발맞추어 WEMIX3.0 메인넷의 지속적인 업데이트를 실행하여, 유저와 생태계 개발자들을 위한 안정적이고 풍부한 서비스를 제공하기 위해 노력하고 있습니다. 이의 일환으로 앞으로 진행될 1분기 메인넷 업데이트 관련 깃허브가 오픈되었으며, 상세 일정 및 내용은 다음과 같습니다.

> 업데이트 안내

  • 업데이트 일정 : 3월 23일(목) 15:00 KST — 3월 30일(목) 15:00 KST
  • 업데이트 기간 중에도 모든 서비스를 원활하게 이용하실 수 있으며, 업데이트 일정은 상황에 따라 변동될 수 있습니다.
  • 업데이트 서비스 : WEMIX3.0 메인넷
  • 업데이트 효과 : 새로운 기능 추가와 기존 기능 개선으로 편리성 및 효율성 향상, 이더리움의 최신 업데이트에 따라 호환성 제고 등
  • 외부에서 운영 중인 End Node들은 업데이트가 필수 사항이 아닙니다.

> 업데이트 내용

기능 추가

1) 높은 가스가격을 우선으로 정렬된 트랜잭션이 블록에 포함되도록 변경 (작업링크)

  • 작업내용: 블록 생성 시 포함시킬 트랜잭션을 가져오는 작업을 1회만 하도록하여 블록에 포함할 트랜잭션을 높은 가스가격을 우선으로 정렬할 수 있도록 변경
  • 작업사유: 블록 생성 시 가능한 많은 트랜잭션을 블록에 포함시키기 위해 생성 시간동안 트랜잭션을 가져오는 작업을 수 회 반복하므로 가스가격 순서의 정렬이 이루어지지 않음

2) ‘triesInMemory’ 값을 변경할 수 있도록 CLI 플래그에 추가 (작업링크)

  • 작업내용: 실행머신의 메모리를 이용하여 block state 정보를 캐싱하는 범위 옵션인 ‘TriesInMemory’ 값을 설정하여 변경가능하도록 CLI 플래그에 추가
  • 작업사유: ‘TriesInMemory’ 값이 128 blocks로 고정되어있으므로 archive 설정이 아닌 노드의 경우 약 2분 전의 블록까지의 상태만 조회가 가능하였음 (이전 블록 시점 밸런스 조회 등에 영향)

3) ‘eth_getReceiptsByHash’ JSON-RPC API 추가 (작업링크)

  • 작업내용: 특정 블록 내 모든 트랜잭션에 대한 receipts 정보를 한번에 조회할 수 있는 ‘eth_getReceiptsByHash’ JSON-RPC API 추가
  • 작업사유: 기존 트랜잭션의 Receipts 조회 API의 경우 각 트랜잭션 건 단위로 조회해야하므로, 블록 단위 등 다수의 Receipts 조회를 위해서는 다수의 개별 RPC를 호출해야하는 번거로움이 있으므로 개선 필요

4) BP 노드를 안전하게 종료하기 위한 스크립트 추가 (작업링크)

  • 작업내용: BP노드의 어플리케이션 수동 종료/재시작 시, etcd 리더 상태이거나 블록 마이닝이 진행 중일 수 있으므로 네트워크에 영향 없이 안전하게 종료하기위한 스크립트 추가
  • 작업사유: etcd 리더 상태거나 블록 마이닝이 진행 중일 때 어플리케이션이 종료되면 다음 대상이 선정될 때까지 일시적으로 블록 마이닝이 중단되는 현상이 발생할 수 있으므로, 대상을 옮기거나 작업이 완료될 때까지 대기하는 안전한 종료처리 필요

변경

1) TxLookupLimit 플래그의 기본값 변경 (작업링크)

  • 작업내용: 트랜잭션 정보 조회가능 범위 설정값인 txlookuplimit의 기본값을 위믹스 체인을 기준으로 1년 기간인 (31,536,000 blocks)로 변경
  • 작업사유: TxLookupLimist 플래그의 기본값이 ethereum 체인을 기준으로한 1년(2,350,000 blocks)으로 설정되어있어 위믹스 체인의 블록생성시간 기준으로는 약 27일간의 블록내 트랜잭션만 상세 조회가 가능하므로 변경 필요

2) rocksdb로의 빌드 시 PORTABLE 플래그를 활성화 함 (작업링크)

  • 작업사유: 빌드머신과 실행머신 간의 환경차이로 인한 일부 크래시 오류를 방지하기 위해 rocksdb로의 빌드 시 PORTABLE 옵션을 활성화하여 빌드 하도록 변경

3) 부트노드가 etcd 클러스터를 자동으로 생성하지 않도록 변경 (작업링크)

  • 작업내용: bootNode(bp1) 구동 시 etcd 정보가 없다면 신규 클러스터를 자동으로 생성하도록 하는 로직을 제거
  • 작업사유: bootNode(bp1) 장애 후 etcd 정보 삭제 및 복구 시, 해당 로직으로 인해 기존 etcd 클러스터에 참여하지 않고 새 클러스터를 생성하므로 제거 필요

업데이트

1) Ethereum Ploitari(v1.10.17) release 버전에 적용된 내용을 반영 (작업링크)

2) Ethereum Sharblu(v1.10.18) release 버전에 적용된 내용을 반영 (작업링크)

하드포크인 메인넷 Phase2 일정은 올 여름으로 예상되며, 추후 별도 공지하도록 하겠습니다.

감사합니다.

--

--