Closed lxcmyf closed 1 year ago
@lxcmyf Good idea, it supplements the grpc api and gives more convenience to interact with java-tron. But how can you express historial prices with only one string in ResourcePricesResponseMessage? I suggest to give a struct.
@317787106 Good question, the return body data structure of the interface has not changed compared to before. This is an example:
{
"prices": "0:100,1575871200000:10,1606537680000:40,1614238080000:140,1635739080000:280,1681895880000:420"
}
I'm glad to see this, expected to all http apis have the corresponding grpc implementation.
+1
Finally, these are very frequently asked and essential APIs for developers in the community.
Good job, hope that you have checked all the interfaces of java-tron and ensure all that support http calls could support gRPC calls as well.
Are there any other interfaces besides /wallet/getbandwidthprices
and /wallet/getenergyprices
that do not support gRPC calls? If so, is it necessary to support them?
This will be a process of identifying and filling gaps, and we will continue to follow up in the future.
I have submitted a PR regarding the implementation of this TIP, https://github.com/tronprotocol/java-tron/pull/5412
Simple Summary
GRPC is a high-performance, general-purpose RPC framework open-sourced by Google. This TIP aims to improve gRPC calls for some specific interfaces in Java-tron.
Abstract
Currently, the interfaces
/wallet/getbandwidthprices
and/wallet/getenergyprices
provided by Java-tron do not support gRPC calls. This TIP will implement this function.Motivation
Currently,
/wallet/getbandwidthprices
and/wallet/getenergyprices
only support HTTP calls. However, this limits developers and users who want to use these interfaces through methods like gRPC, since they won't be able to access historical unit price information of resources through this method. Additionally, it makes it inflexible for external API use.Specification
As mentioned above, Java-tron will modify the
api.proto
file to add gRPC implementations of/wallet/getbandwidthprices
and/wallet/getenergyprices
:Rationale
Since the underlying implementation of the two interfaces
/wallet/getbandwidthprices
and/wallet/getenergyprices
has been completed, it is only necessary to open the gRPC implementation entry for them.Implementation
Since the protobuf protocol has been defined above, it is only necessary to add the gRPC implementation code in
RpcApiService.java
:In addition, they also support solidity and PBFT API, so gRPC implementations need to be added in
RpcApiServiceOnSolidity.java
andRpcApiServiceOnPBFT.java
respectively as well:RpcApiServiceOnSolidity.java
RpcApiServiceOnPBFT.java