Oddbean new post about | logout
 Introducing local event database in Spring browser v0.8.0!

So basically, Spring will now download all your and your followers' stuff and store it locally. On app restart it will sync and download only new events. The UI, feeds etc are mostly built using events from the local database.

https://void.cat/d/2XSotQbSzY7pXLtB1GtKKR.webp

Immediate benefits of this are:
- feeds load faster on app start
- less network traffic consumed
- less CPU wasted on signature verification

But the biggest wins that a local db enables will come later:
- offline mode
- fast search among local events
- local trust rank calculation
- local algorithms
- data backups and exports
- local relay for p2p? local AI models? who knows...

Also, imagine every app running inside Spring could have access to these local events... Apps would magically start working much faster, hopefully even offline.

Right now the database is very slow and inefficient and implemented in JS and occupies the UI thread, as soon as we figure out all the interfaces and features it needs to support we'll move it to the native code - nostrdb or strfry or maybe something homegrown. 

Play Store: https://play.google.com/store/apps/details?id=com.nostr.universe
APK: https://github.com/nostrband/nostr-universe/releases/download/v0.8.0/spring-nostr-browser-v0.8.0.apk 
 Nice work #bullish  
 nostr:nevent1qqs2j3a77w97tm8tyk4jye6yuut9l0gf6peqsh5zfxku7d6n258n0lqpr9mhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv9uqsuamnwvaz7tmwdaejumr0dshsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uq35amnwvaz7tmjv4kxz7fwwd5xjarxdaexxefwdahx2tcpremhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet59uq3samnwvaz7tmjv4kxz7fwvd6hyun9de6zuenedyhsz8thwden5te0dehhxarj9ekh2arfdeuhwctvd3jhgtnrdakj7qg6waehxw309ac82unpwe5kgcfwdehhxarj9ekxzmny9um7rw5c 
 And when I wrote "your followers' stuff" I obviously meant "stuff of profiles in your contact list". 
 I like this

nostr:nevent1qqs2j3a77w97tm8tyk4jye6yuut9l0gf6peqsh5zfxku7d6n258n0lqppemhxue69uhkummn9ekx7mp0qy08wumn8ghj7mn0wd68yttsw43zuam9d3kx7unyv4ezumn9wshszymhwden5te0danxvcmgv95kutnsw43z7qg4waehxw309aex2mrp0yhxgctdw4eju6t09uq3wamnwvaz7tmjv4kxz7fwdehhxarj9e3xzmny9uq35amnwvaz7tmjv4kxz7fwwd5xjarxdaexxefwdahx2tcpr9mhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv9u9z5ja0 
 Wow, very bullish on spring 
 Is it trying to recheck the old gaps in case it missed something. meaning once it's locally does it ever reconsider the past again at some point in case something was down?  Probably stupid question but I'll do it  
 NVM sir finished reading you're aiming for strfryish level of performance . Makes sense more coming . All good 
 Not rechecking atm unless you click full sync, will improve this using negentropy or whatever better strategy becomes available  
 Slowly moving there with Spring nostr:nevent1qqs2j3a77w97tm8tyk4jye6yuut9l0gf6peqsh5zfxku7d6n258n0lqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygpn2m0xrvukg7f3e69jzs9jh2ur0cypps8029dmayk7qfyqgzutm5psgqqqqqqs64ycar