Because the Daemon API is so free-form (being JSON-based) there are no obvious limits to the text fields in either requests or replies. Some are obvious where they are GUIDs, hashes, or signatures, but others like titles, names, URLs, URIs, etc. are not. I assume there must be limits to these, but I don’t know where to look for them.
The reason this is important to me is that I’m developing a database for the LBRY Media Manager (working title) and I need to know when I can limit the size of strings. Making every string in the database MAX could affect performance (not that I expect more than a handful of users to have a database large enough for database performance to be an issue).
I notice that the ChainQuery schema has limits on a lot of fields. Can I consider that a categorical resource, or were those limits made up from whole cloth.
The ChainQuery schema can be found here: https://github.com/lbryio/chainquery/blob/master/db/chainquery_schema.sql
The Chainquery schema started from our Block Explorer schema. The limits are not arbitrary but are also not binding. The LBRY app limits text fields of the meta data. You can leverage the chainquery schema as a resource as it holds the whole blockchain.
There are no strict limits on many of these fields. The limit is implicitly imposed by the max size of the claimscript on the blockchain (the claimscript is where the metadata is stored). The claimscript of a transaction cannot exceed 8kb, so that’s a rough upper bound on the size of all the metadata taken together and encoded in a protobuf.