It's been a week since I started working on the Native Ads protocol, as a standalone protocol. Here's a brief overview of what I have developed in the last week.
33 commits, 563 additions and 48 deletions, comparing the dev branch before merging into master...
See all my commits here: https://gitlab.com/imwatsi/native-ads/-/commits/master
Caching
I implemented basic caching for accounts, so as blocks are processed, accounts are mapped to database IDs from an in-memory cache, which also holds account properties. This reduces the number of DB queries made as the service runs.
Basic monetizer ops
account_init: to initialize monetizer accountsset_props: to update the monetizer account properties
DB schema
monetizer_accstable to store the monetizer accounts and their properitesadvertizer_acctable to store the advertizer accounts and their propertiesmonetizer_spacestable to store spaces that monetizer accounts createad_poststable to store ads created by advertizer accounts
Improved DB initialization and setup
I refactored the code and changed the logic to allow for a more unified flow and support future migrations. DB checks happen on every startup.
Preparatory code for advertizer ops
I wrote shell code in preparation for advertizer ops and related processes.
Next week's scope
- Advertizer ops: ad_submit, ad_bid, ad_approve, ad_reject, ad_fund
- Ad posts creation and updates
I'm aiming for an alpha release within the next 2-3 weeks.
Upon release, the server will be available on: https://native-ads.imwatsi.com, and anyone who wants to run the server can download the source, pip install it according to the README and run. I'll continue improving the setup and installation methods.