Elastos Bi-Weekly Update – Nov 13, 2023

Elastos Bi Weekly Update

In the latest Elastos Bi-Weekly update, the core development ecosystem has witnessed substantial advancements led by Trinity, Gelaxy and Elacity, reflecting a strong commitment to innovation and strategic collaboration.

The Trinity team’s role in advancing Elastos’ ecosystem is marked by their focus on enhancing user experience and security, as well as their dedication to resolving functional challenges across various projects such as Elastos DID Web Service, KYC-me, Essentials wallet and Carrier networking. In the Elastos DID web service, they have significantly upgraded the DID web service. This includes introducing the ability to unbind email accounts in the Security Center, facilitating the import and display of Verifiable Credentials, and improving the access key generation process. Key issues such as incorrect issuer displays in VCs and browser compatibility problems in the user activities list have been addressed, leading to ongoing updates in the DID web services UI/UX design. These improvements are now available in both the staging and production environments, where more information on its release will be announced soon.

The team’s efforts with the Web3Essentials wallet have been geared towards enhancing its reliability and functionality. This includes resolving the complications with NFT trading on OpenSea, updating the integration with kyc-me, and preparing for the release of version 3.0.13 of Web3Essentials, which includes fixes for several accumulated bugs.

In their work on the kyc-me initiative, the Trinity team has tackled the issue of the app icon not displaying correctly during Web3Essentials wallet logins and implemented a backend interface to clear cached user data. They have also boosted the OCR return parameter’s Confidence value to refine identification accuracy, especially in cases of blurry identity document photos. Trinity is continuously improving the kyc-me code, with a particular focus on ensuring its compatibility and effectiveness on desktop browsers. Moreover, under the Trinity Team’s direction, the Carrier service has experienced notable improvements and enhanced community support.

The Gelaxy Team has made significant strides in enhancing the Mainchain and Elastos Smart Chain (ESC) and Elastos ID (EID). For the Mainchain, they’ve nearly completed increasing the side chains’ gas price, optimised state transitions of BPoS nodes and CR members for better stability, and improved the main chain browser to support more detailed statistics. A notable update is the now-online rewards calculator on the main chain explorer.

In the ESC/EID domain, the team resolved an issue where the increased minimum Gas price limit on the ESC sidechain was not effective. They also began repairing the ESC browser to display intra-contract transactions accurately and addressed occasional block instability on the main network EID, ensuring smoother and more reliable blockchain operations.

For Elastos Runtime infrastructure, the Elacity team’s primary goal is to enhance both the security and media playback with DRM-encrypted video capsules for the handling efficiency of the system. To achieve this, they have focused on fundamental aspects such as strengthening the interaction layers between modules, refining the process of Elliptic Curve Diffie-Hellman (ECDH) key generation, and incorporating robust AES-128-CBC encryption to protect media content. Their approach to debugging and playback optimisation, aiming for simplicity and effectiveness, has significantly improved media continuity and reliability. 

To further streamline media handling, the team has introduced on-demand media creation, allowing audio only for future music application and achieved more precise synchronisation using Media Source Extensions (MSE), coupled with a thorough restructuring of the player codebase for enhanced organization and efficiency. The team’s efforts in updating the codebase and tools are evident in the integration of the latest remuxing techniques, upgrading to Go version 1.21 for WebAssembly System Interface (WASI) support, and delving into the potential of WebSocket integration for improved network handling.

Finally, the Elacity Team has worked on refining the Elastos runtimes frontend and playback experience. This includes bolstering the metadata infrastructure to better support frontend processing, methodically resolving memory leaks to enhance performance, and proactively tackling specific playback issues related to Chrome’s keyframe interpretation, all aimed at delivering a more streamlined and reliable user experience.

DID Web Service

  • Implemented the feature in DID web service to support unbinding of email accounts in the Security Center.
  • Implement the functionality in the DID web-services Applications page for requesting to import/show related VCs (Verifiable Credentials) information.
  • Optimize the page for generating access keys in the DID web service.
  • Resolve the issue in the DID web service where the Issuer is incorrectly displayed when importing VCs.
  • Fix the issue in the DID web service where the imported Identity Root is not displayed on the import/export page.
  • Address compatibility issues in getting the browser name, as some browsers show undefined names in the user activities list.
  • Continue importing UI/UX designs to update the front-end implementation of the DID web service.
  • Update deployment in staging and production environments.


  • Resolve the issue with NTF trading not being possible on OpenSea.
  • Update the integration of kyc-me.
  • Accumulated bug fixes.
  • Test and release version 3.0.13 of Web3Essentials.


  • Resolve the issue where the kyc-me app icon is not displayed when logging in using the Web3Essentials wallet or DID web service.
  • Fix the issue where there is no pop-up prompt when the scanned identity document photo is placed too far or too close, preventing further verification steps.
  • The kyc-me service backend has added an interface to clear users’ cached data, supporting front-end clearance of cached user data through API calls.
  • Increase the OCR return parameter Confidence value to 0.93 to filter out some cases where individuals are incorrectly identified as non-document holders (though the final tests still occasionally result in incorrect identifications).
  • Update the kyc-me test environment for further testing and verification.
  • Optimize the kyc-me code implementation based on testing suggestions.
  • Begin assessing kyc-me support for Desktop Browsers.


  • Community support and improvements based on community feedback.


  • Most of the work of side chains gas price increase has been completed in relation to main chain.
  • Optimize the state switching(from inactive to active) of BPoS nodes and CR members to improve node stability.
  • Optimization of the main chain browser to support transaction count, block count and other statistics.
  • Revenue calculator, which is now online on the main chain explorer has been updated.


  • Tweak and fix the problem that the increase in minimum Gas price limit of ESC sidechain does not take effect.
  • The cause of the problem that some of the ESC browser’s intra-contract transactions cannot be displayed has been investigated and the related repair work has been started.
  • Handled the problem of occasional block instability on the main network EID.


  • Strengthened the security layer between modules, reinforcing the robustness of interactions and data exchange.
  • Initiated and refined the key generation process for Elliptic Curve Diffie-Hellman (ECDH), enhancing the cryptographic strength of communications.
  • Successfully implemented the key agreement flow, adjusting for operational consistency across C and Golang environments.
  • Integrated AES-128-CBC encryption method to secure media content, augmenting the overall security posture.
  • Conducted thorough debugging to isolate and rectify the origin of a persistent playback error, improving reliability.
  • Extracted and analyzed segment creation from legacy remuxing code, pinpointing the underlying bug within the refactoring efforts.
  • Devised a methodology for testing segmented media outside the WebAssembly (WASM) player, utilizing the Linux command line for direct Media Source Extensions (MSE) feeds.
  • Achieved seamless video playback using MSE, addressing previous challenges with media continuity.
  • The segmentation solution was incorporated into the latest WebAssembly player release to ensure compatibility and smooth playback, which relates to addressing playback optimization.
  • Adjusted the new segmentation logic to ensure the seeking functionality works correctly, addressing issues from the last implementation.
  • Refined the main codebase to support on-demand media creation, enabling audio-only, video-only, and combined streams.
  • Ensured broad compatibility with diverse operating environments, notably WASM and browsers like Google Chrome.
  • Successfully streamed segmented video and audio through Media Source Extensions (MSE), demonstrating improved handling and synchronization.
  • Refactored the player codebase, moving utility functions to separate files for better organization and readability. This could be seen as enhancing media handling by improving the code structure that supports it.
  • Adjusted the player’s data flow to enhance performance and address previous issues, directly relating to handling media streams more efficiently.
  • Integrated the latest remuxing improvements to enhance browser buffering capabilities and optimize MSE performance.
  • Visualized and analyzed timestamp discrepancies to troubleshoot and rectify Chrome-specific playback anomalies.
  • Merged cutting-edge remuxing developments into the de/remux branch, leading to better segment buffering strategies.
  • Updated Go to version 1.21, enabling WebAssembly System Interface (WASI) support, which aligns with the latest web development standards.
  • Researched the conversion of POSIX sockets to WebSockets and developed a better understanding of network handling and proxying techniques. This update signifies an improvement to the infrastructure supporting the media player.
  • Attempted manually setting up a WebSocket server to test and possibly integrate into the player’s networking layer. This falls under updating the tooling to enhance the networking aspect of the media player.
  • Enhanced the metadata infrastructure, incorporating mime codec information to aid frontend processing.
  • Embedded and operationalized WebAssembly (WASM) code directly within the browser, fortifying the application’s playback capabilities.
  • Addressed and resolved a critical memory leak, which significantly improved playback performance and resource efficiency.
  • Identified a Chrome-specific issue with keyframe interpretation, with ongoing efforts to understand the rejection of particular keyframes.
  • Found a temporary workaround by setting sourceBuffer.mode to “segments,” although a more permanent resolution is being sought within the backend remuxing flow.