The token model section of the eos.io white paper states:
Block producers publish their available capacity for bandwidth, computation, and state.
This is a bit vague and I am trying to answer a few questions:
The total available capacity (bandwith/cpu/ram) of all the BPs is required to be able to compute the price for resources. So to be able to price things correctly each BP must be aware of the entire capacity of the entire network.
Also since the capacity adjusts continuously (as more resources are brought on or taken offline) that means that the BPs need to be continuously updated about other BPs capacity.
So the question I am trying to answer is how is this achieved? Do BPs broadcast this information to each other, is this information embedded in each block that is published, or do BPs query each other for this information?
Also how is that information determined? What is the mechanism for a BP to decide what its capacity is?
And lastly - how would a developer or dapp obtain this information themselves, in order to attempt to price their own resource needs.