Od pewnego czasu pracuję nad prostym serwisem do tworzenia, krótkich treści na Blurt. Założenie jest proste. Jeśli chcemy więcej ludzi tutaj to musimy mieć miejsce, gdzie ludzie mogą poprosić o pomoc, pochwalić się kotem i kolacją. Czasami zastanawia mnie czy to tylko wina UI Blurta, że wygląda jak serwis do tworzenia poważnych wpisów, czy może Hive, który wymuszał aby każdy post wyglądał jak dopieszczany przez tydzień wpis.
Z pomocą idą społeczności, które mogą być bardziej zamknięte i reguły wewnątrz społeczności mogą być nieco inne niż w całym serwisie.
Serwis ma na razie kodową nazwę "balbuti" czyli bełkotać w Esperanto i ma docelowo przypominać serwisy w stylu Twittera (czy tam X). Idealnie by było gdyby dało się napisać sam FE, ale już podczas etapu projektowania zdałem sobie sprawę, że nie będzie to możliwe. Np. nie jest możliwym zapytanie RTC o posty z określonym tagiem dla konkretnej społeczności. Dodatkowo potrzebuję informacji o najpopularniejszych tagach w ciągu ostatnich godzin, albo najaktywniejszych osobach na tagu.
Z powodu tego typu rzeczy postanowiłem wstrzymać pracę nad samym FE i zacząć tworzyć prosty Backend, który byłby docelowo na tyle elastyczny, że w przyszłości będziemy mogli go wykorzystać jako podwaliny do nowych funkcjonalności w sieci Blurt. Projekt nazywa się "cherpilo" czyli czerpak (kolejny raz w Esperanto, ale kto mnie zna ten wie, że to mój sposób na spędzenie 100 razy mniej czasu na wymyślanie nazwy projektu).
Chodzi o to aby przy pomocy pliku konfiguracyjnego dało się skonfigurować aplikację na tyle aby wyciągać z BC interesujące nas dane. Coś trochę bardziej rozbudowanego niż sql @fervi
Tutaj przykład pliku konfiguracyjnego, który od podanego bloku zaciąga dane, a następnie przy użyciu JSONata konwertuje paczkę i wrzuca do wcześniej stworzonej bazy danych. Ta część już działa od pewnego czasu bardzo dobrze:
startBlock: 37213060
dbfile: db.sqlite
tables:
- name: Data
creation: >
CREATE TABLE IF NOT EXISTS Data (
id INTEGER PRIMARY KEY AUTOINCREMENT,
author TEXT DEFAULT "",
permlink TEXT DEFAULT "",
title TEXT DEFAULT "",
community TEXT DEFAULT "",
tags TEXT DEFAULT ""
)
jsonata: >
$$.{
"community": parent_permlink,
"author": author,
"permlink": permlink,
"title": title,
"tags": $join($match(body,/#([a-zA-Z0-9_]+)/).match,'')
}[$contains(community, "blurt")]
Obecnie pracuję nad stworzeniem dynamicznie endpointów do API w taki sposób, że w pliku konfiguracyjnym będzie dało się skonfigurować projekcje i ich parametry, a następnie swagger ładnie pokaże możliwości API.
Napisałem ten wpis aby przybliżyć co robię obecnie i może co jakiś czas wrzucić aktualizację z prac. Kod na razie jeszcze nie jest upubliczniony, ale docelowo na pewno trafi na jakiegoś githuba lub gitlaba.
nie umę się doczekać :D
Czekamy :D
As you're a developer, why not consider using a Blurt RPC node with Nexus (a Blurt RPC node has much lighter specifications than a Hive RPC)? This would allow you to query Nexus directly through its PostgreSQL database and perhaps even contribute new modules to Nexus for the benefit of all ;)
Some resources:
Repo Nexus: https://gitlab.com/blurt/openblurt/nexus
Repo Blurt: https://gitlab.com/blurt/blurt
Some post for the manual way to build a RPC (the easiest way is docker) post:
https://beblurt.com/@techcoderx/blurt-full-rpc-setup-guide-late-2022
https://beblurt.com/@nalexadre/building-a-blurt-blockchain-rpc-node-server-ubuntu-1685367011399
https://beblurt.com/@nalexadre/blurt-blockchain-testnet-with-nexus-1690926923012
Thank you for your comment. It might be a good idea. I wanted to create something small and agile for future projects. This one is my playground. RPC has quite big requirements, DB is also big. If you want to find only specific metadata of the post you don't need to keep them all. It is more like an extractor. Of course RPC can do the same if it's agile enouth.
https://gitlab.com/dotevo/cherpilo/-/blob/master/example_config.yaml?ref_type=heads
If you want we can discuss that ;-)
Upvoted. Thank You for sending some of your rewards to @null. Read my last posts to make sure that BLURT burning is profitable for you. Before using this bot please make sure your account has at least 100 BP. Get more BLURT:
@ mariuszkarowski/how-to-get-automatic-upvote-from-my-accounts
@ blurtbooster/blurt-booster-introduction-rules-and-guidelines-1699999662965
@ nalexadre/blurt-nexus-creating-an-affiliate-account-1700008765859
@ kryptodenno - win BLURT POWER delegation