Open Place Reviews - Week #8


#1

Hi All,

Sorry for not giving updates for last 4 weeks and here is why. There is a lot of work ongoing in different directions and most of it in progress.

Business Entity & Hiring
There is ongoing process of creating a business entity and hiring people. It is going in the background but there is an important goal to have a team of at least 4-5 developers. In case you want to join the team, please don’t hesitate to contact.

New Domain
Most important news that get uncovered that project has changed the name to Open Place Reviews. Initially we’ve booked another domain https://openplacereviews.org but then later after some beta testing with random people we’ve reached an agreement that is a better name for understanding, pronouncing & spelling. So, as of today there are 2 domains and “Open Place Reviews” is an official one.

Website
We decided to have draft implementation on https://dev.openplacereviews.org/en/, so people could do beta testing. Important, all data that was input on the dev version could be lost any minute, we plan to start from a completely fresh data i.e. from empty database every week (or every night).

On the front end we’ve mostly focused on OAuth authentication as for now we have algorithms for Google, Facebook, OSM. And integration with backend which is not visible.

Public Database / Blockchain
This is the most exciting and most difficult part. There were lots of refactoring and review process with it. This technology definitely deserves a different blog item about it and it will be done once the concept is finalized and reviewed.

You can see the activity for the project here - https://github.com/OpenGeoReviews/opendb. As now I would estimate to be able to run basic operations needed for open place reviews this project would need to be around 20-30K Lines of code, today it is only about 5000 Lines of code. By that metric we are only 20% done. On the other hand we still could run some basic operations while developing the public database algorithms, though it is hard to say how to properly organize it.

Is there any blocker there?
I would say there is a normal process of constant refactoring. Of course, we could take 1-2 month and write Whitepaper how it should work on the other hand it is really hard to do until you start coding and testing. And that’s what we did. You can see internal blocks here - https://dev.openplacereviews.org/api/admin.

We’ve designed several builtin operations:

  1. sys:signup [DONE] - user signup and register by oauth / pwd or by public key
  2. sys:login [DONE] - user logins by oauth, private key, pwd of signup and generates new pair of private / public key which will be used for all other operations. It should be possible to regenerate login once it is compromised.
  3. sys:operation [Needs refactoring] - defines which operations are allowed to be performed in opendb. For now it has a mapping from Blockchain json operation to database table mapping but it needs to be changed.
  4. sys:table [Needs refactoring] - defines which tables sql database should have
  5. sys:role, sys:grant - defines roles and grants roles to a specific user or specific logins of the user
  6. sys:validate - defines validation of the operation to be included in blockchain and roles of users who can change that validation
  7. Extra sys:operation, sys:block - will represent operation and block itself

Where we are now?

  • Implement sys:role, sys:grant
  • Add versioning of the objects so we can change any object like login / place or validation information
  • Implement main sys:validation mechanics
  • Introduce sys:op_limit to defend from DDOS attacks
  • Review and make a formal proof of blockchain operation execution and there mapping to database. The trick is to make database revertable to any state of the blockchain.
  • Replication between nodes

It doesn’t mean that all this needs to be done from scratch, there are building blocks like an expression language which is already done and we just need to build proper function library.

Summary
I believe there are always good and bad things. And here we obviously have some delays as we wanted to run public signup/login in a month and it didn’t happen. On the other hand we progressed quite a lot on the blockchain side and we proved with some experiments that it could work. We’ve learned how to organize stuff better and actually we are running ahead of the plans for blockchain implementation.

Obviously, I feel a bit embarrassed that I see the potential how to organize more people but without tools it is really hard to do and I would need to ask to wait longer, so once the tools will be ready the database will become reality and we all can contribute to it.

Please stay tuned and please don’t stop sending suggestions, ideas. It actually helps to build the platform.

Thank you all,
Victor