Skip to content

Open points

reviewed: 19 November 2024

Current pool of tasks

  1. Official Pheix/Ethelia project registration at ФИПС: @pheix-io/ethelia#25:
  2. Authenticate user via MetaMask in Pheix project: #186:
  3. Pheix project updates/improvements/enhancements:
    • Migrate from flatfiles (filechains) to PostreSQL in Pheix project: #121;
    • Support EIP-4844 transactions in Pheix project:
    • Log all requests and responses in Pheix project: #197;
    • Database on blockchain optimization/improvement;
    • Push to fez ecosystem;
    • Add /metrics route for Prometheus, consider RED, USE and LETS metrics; check Prometheus client in Raku;
    • Add a new slide to index page slider with the details about Matrix workspace and PM25/Ethelia project Telegram channel; good case — A. Lebedev's «Контент везде» slide with links to the accounts in the most popular social networks and QR to the landing page with all available links as well. Search Add to Ethelia Open Points in Google Calendar for more details;
    • Add valid favicon.
  4. New LIVE server co-location for PM25/Ethelia project:
    • buy hardware:
    • initial setup: Ubuntu 24.04.1 LTS;
    • cable management;
    • perform hot-reserve test before the co-location.
  5. ERC20-token funding/charging for PM25/Ethelia project, details: @pheix-io/ethelia#37;
  6. Make different maps/locations availbale in PM25/Ethelia project;
  7. Upgrade Ethereum Local Network:
    • Cancun infrastructure: separate validator(s) and 2x Geth execution clients with built-in beacon clients;
    • Run clef instance for one node (1st or 2nd, no matter);
    • Upgrade/refactor tests for smart-contacts project according the new network upgrades: @smart-contracts#33;
    • Introduce clef authentication module in Pheix project: #174;
    • Remove personal namespace from start up script: @pheix-research/ethereum-local-network#9
  8. Infrastructure monitoring and log collecting system via PrometheusPushGatewayAlertManager: @raku-dossier-prototype#9:
  9. PM25/Ethelia project and Dossier telegram bot:
    • Extract PM2.5 sensor values from photos (OCR): @raku-dossier-prototype#6;
    • Smart telegram bot monitoring and possible restart: @pheix-research/raku-dossier-prototype#9;
    • Embed micro web-server with /metrics route to deliver generic bot metrics to Prometheus;
    • Asynchronous dumper for keystores, dossiers, logs, configs and other important data stored inside the container: safe remove/prune/delete feature:
      • Add async dump feature to Telegram bot — create tgz dump file on bot start, save tgz dump file to shared folder;
      • Add crontab job to copy tgz dump file from share folder to archive location;
    • Add /faucet 0xdf...3c feature to bot: a simple way to get some AlaAuETH to get started with authentication feature;
    • Maps (single and animated) in dark theme.
  10. PM25/Ethelia project launch: @pheix-io/ethelia#40;
    • Sync only updated local records in a threshold period: @raku-ethelia#12;
    • Describe and test the approaches to make a blockchain sync reliable and endpoint independent. Currently we can actually switch between Alchemy and Local nodes, in theory (it should be tested) we can open VPN tunnel to AC78 and use it temporarily (also we can open VPN tunnel right at the sync start from the helper script) — anyway finally we have to get some kind of documentation with all these details;
    • trx-advancer: review latest implementation and add (???) functionality to get transactions from a mempool, in general we have to introduce the tools for quick identification and fixing the next situation:
      • current nonce is X;
      • we commit signed transaction with nince X+100: transaction stuck and will never be mined;
      • trx-advancer should be able to find that transaction and somehow restore the nonce sequence: get stuck transaction's input and create a new transaction with X+1 nonce.
  11. Migrate to HTTP::Tiny as a generic HTTP transport at:
  12. Official Ethelia Landing Page improvements:
    • Add authentication form and all related features;
    • Update content (slide with details):
      • Cube and Sphere smart sensors;
      • pm25.online service;
      • API documentation link to main navigation block;
      • Getting started page.
  13. Update Cube sensor new prototype:
    • new STL model (CubeV2) with no holes and non-removable front panel (check the plastic prototype with putty);
    • Print CubeV2 in plastic;
    • CubeV2 in aluminum.
  14. Set up and run VPN on ala-archa.

 Work in progress: new items to be defined and announced. 

Pinky paper

  1. Ethelia technical concept: Telegram, Geth, Pheix and Ethelia as an add-on module;
  2. Technical part from marketing perspective: finally we have to do full rewrite of tech part in human/investor readable way, collect details from:
  3. Monetization and product payback:
    • PM2.5 project funding model: #37;
    • since fixed limit for event search is introduced, different paid subscriptions could increase/decrease this setting;
    • event subscription«events-on-air» feature on remote endpoint or in administrative panel, also consider filters and proxy/relay to external services like Telegram, Matrix, Slack, Discord or traditional email as a future improvements;
    • plan «pay per device» — we will define the limit for free-of-charge event sources, any additional source should be paid;
    • plans «pay per request» or «pay per auth» — request cost is 20x lower for example, but auth is much more flexible for enterprise clients;
    • generally Ethelia is a gateway to public, private (scale the higher number of nodes), virtual (cloud hosted) and local (single CPU) networks — there could be any pricing plans, like «pay per node» — increase number of nodes and make it much more decentralized, «pay per CPU» — scale your local network, «pay per resource» — manage your cloud;
    • plan «pay per transaction»/pheix-io/unilode/-/issues/1#subscription-details;
    • since the registration model via Telegram bot is used, we can introduce different paid plans in TON coins, the most reasonable one «pay per function» — customer pays for advanced bot functions (mostly taken from administrative panel);
    • admin panel integration to 3rd-party websites requires cross domain cookies to be allowed, so SameSite should be set to None instead of Strict — it's configurable and customer might be charged to allow that feature;
    • investment models for PM25/Ethelia project based on ERC20 token listings and long-term historical data usage/sharing perspectives: PDF;
  4. Future improvements, prospects and road map (3 years vision).

Extended technical details

Pheix database on blockchain optimization/improvement

Add new bytes32 data member to PheixAccess event at PheixDatabase smart contract.

The idea is to use that new event topic to store data directly on blockchain via built-in Ethereum event mechanism. Consider insert or update: these functions store data via mappings and other solidity-driven features. The data is actually a |-separated string like:

0xd67495f282530196a6db3441ce39eaac06faf22f|aqicn-32|Mon, 22 Jul 2024 12:36:12 GMT|ewogICJlbnJpY2htZW50IjogewogICAgInRpdGxlIjogInBhcmsgSW0uIEEuQm90YWxpZXZhIiwKICAgICJwcm9maWxlIjogImh0dHBzOi8vYXFpY24ub3JnL3N0YXRpb24vQDM5ODA3Ny8iLAogICAgInBvc2l0aW9uIjogewogICAgICAibG5nIjogNzQuNTg1NjkyOCwKICAgICAgImxhdCI6IDQyLjkwNjk0NzIKICAgIH0KICB9LAogICJzZW5zb3JkZXZpY2UiOiAiRXRoZWxpYTo6U3RhdGlvblBhcnNlcjo6QVFJQ04iLAogICJzZW5zb3J2YWx1ZSI6ICI0MyIKfQ==|parkImABotalieva

That string is stored in mapping with the specific metadata: id and compression flag, which we can also store in event:

event PheixAccess (
    uint8   indexed mcode,
    bytes32 indexed table,
    uint256 indexed rowid,
    bytes32         data,
    uint8           compression,
);

Open points / To be discussed

How to perform delete/remove functions on event

Just add indexed zombie member of uint8 type — if it's set to 1: it means the deleted record and we should not include it in the full table representation.

How to collect full table from event list

By table and zombie members — table should contain searched table name and zombie should not set to 0.


Authorization on event source

Now we have to pass auth on Ethereum node and get the access token. This token might be changed in some time interval, so:

  • deliver new token somehow to event source;
  • just add authorization step to event source software/firmware.

Both solutions are very expensive and we need something lightweight and reliable. I suggest to consider subscription feature available in Geth.

Static tokens were introduced at 2a720ea3 and this is the possible compromise for now.