Open points
reviewed: 19 November 2024
Current pool of tasks
Official Pheix/Ethelia project registration at ФИПС:@pheix-io/ethelia#25:- script to calculate sourcebase in Kbytes: sources-to-singlefile.v2.raku;
- collect all sources to single file: @pheix-io/ethelia#25→1448397008, PDF;
- Application is sent on 5 November 2024: @pheix-io/ethelia#25→2194578265;
- Project is registered on 18 November 2024: @pheix-io/ethelia#25→2218888950.
- Authenticate user via MetaMask in Pheix project: #186:
fix bugs and UI inconsistency for current implementation:- unset loading flag on exception @pheix/dcms-resources#6a04b37d;
- tweak UI on MetaMask exceptions/errors @pheix/dcms-resources#8a3e9413.
public key interchange for opened session:- research draft: @pheix/dcms-raku#186→2185159720;
- implementation:
- items left: @pheix/dcms-raku#186→2202421264.
- CI/CD pipelines: @pheix/dcms-raku#186→2216696042
- write an announcement post on feature merged to:
- Feature video intro, short on youtube;
- narkhov.pro;
- pheix.org;
- Telegram and Matrix;
- Twitter and LinkedIn.
- sanitize auth algorithms:
- Extended balance-dependent auth @pheix-research/talks#19;
- Extended secret-dependent auth
- Pheix project updates/improvements/enhancements:
- Migrate from flatfiles (filechains) to PostreSQL in Pheix project: #121;
- Support EIP-4844 transactions in Pheix project:
Implement C-KZG-4844 Raku binding@pheix/raku-node-ethereum-kzg;- Add support to Pheix project;
- Run PM25/Ethelia project on Ethereum blobs;
- Write the article for Raku Advent Calendar 2024.
- 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.
- New
LIVE
server co-location for PM25/Ethelia project:- buy hardware:
- 32GB memory ECC 8GB 2Rx4 PC3 is not supported ;
PCI-2-M2/SATA adapterUGREEN CM302 SATA/M2;- M2 NVME SSD 64/512GB:
- FORESEE 64GB E2M2.
M2 SATA SSD 128GB:- Hynix 128GB HFS128G39TND-N210A.
- HDD 3.5 4GB.
- initial setup: Ubuntu 24.04.1 LTS;
- cable management;
- perform hot-reserve test before the co-location.
- buy hardware:
- ERC20-token funding/charging for PM25/Ethelia project, details: @pheix-io/ethelia#37;
- Make different maps/locations availbale in PM25/Ethelia project;
- 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
- Infrastructure monitoring and log collecting system via Prometheus→PushGateway→AlertManager: @raku-dossier-prototype#9:
- use AlertManager Matrix bot as a webhook receiver;
- use Docker Compose for deployment;
- 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, savetgz
dump file to shared folder; - Add
crontab
job to copytgz
dump file from share folder to archive location;
- Add async dump feature to Telegram bot — create
- 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.
- 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 withX+1
nonce.
- current nonce is
- Migrate to
HTTP::Tiny
as a generic HTTP transport at:Net::Ethereum
: @raku-net-ethereum#32WRSLL
: @what-retirement-should-look-like#3Dossier::Transport::Request
- 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.
- 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.
- Set up and run VPN on
ala-archa
.
Work in progress: new items to be defined and announced.
Pinky paper
- Ethelia technical concept: Telegram, Geth, Pheix and Ethelia as an add-on module;
- Technical part from marketing perspective: finally we have to do full rewrite of tech part in human/investor readable way, collect details from:
- Startup World Cup Ulan-Bataar 2024;
- Ethelia investment presentation: PDF, Video;
- Letter of motivation (#32);
- Glovo KG Startup Competition;
- Running Ethereum node grant;
- Sui x KuCoin Labs Summer Hackathon;
- IT-Park UZ registration at acceleration program;
- Ethelia traction metrics Q1 2023;
- Late startup application form at YC;
- UNICEF Call for Frontier Technology Startups;
- Techstars startup strategy.
- 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 ofStrict
— 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;
- 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.