1.一种区块链JVM数据访问方法,其特征在于,区块链节点配置有状态数据库和本地数据库,所述方法适用于区块链节点,所述方法包括:jvm执行线程接收第一交易的交易执行参数;其中,所述交易执行参数包括所述第一交易所对应的第一数据库句柄;
所述jvm执行线程通过回调函数将所述第一数据库句柄与第一jvm环境句柄的对应关系绑定注册到区块链执行模块中;其中,所述第一jvm环境句柄为执行所述第一交易的第一线程的句柄;
所述第一线程在通过第一合约执行所述第一交易时,根据所述第一jvm环境句柄向所述区块链执行模块请求访问数据库;
所述区块链执行模块根据所述第一jvm环境句柄和已注册的各对应关系查找出所述第一数据库句柄,以供所述第一线程访问所述第一数据库句柄所对应的数据库以执行所述第一交易。
2.根据权利要求1所述的方法,其特征在于,所述第一线程为所述jvm执行线程。
3.一种区块链JVM数据访问方法,其特征在于,区块链节点配置有状态数据库和本地数据库,所述方法适用于区块链节点,所述方法包括:jvm查询线程接收到第一查询请求;其中,所述第一查询请求的查询参数包括第二数据库句柄;
所述jvm查询线程通过回调函数将所述第二数据库句柄与第二jvm环境句柄的对应关系绑定注册到区块链查询模块中;其中,所述第二jvm环境句柄为根据所述第一查询请求执行查询的第二线程的句柄;
所述第二线程在通过第二合约执行所述第一查询请求所请求的查询时,根据所述第二jvm环境句柄向所述区块链查询模块请求访问数据库;
所述区块链查询模块根据所述第二jvm环境句柄和已注册的各对应关系查找出所述第二数据库句柄,以供所述第二线程访问所述第二数据库句柄所对应的数据库以执行查询。
4.根据权利要求3所述的方法,其特征在于,所述第二线程为所述jvm查询线程在判断出未曾缓存所述第二合约时,加载所述第二合约、缓存所述第二合约的字节码之后所创建的线程。
5.根据权利要求3所述的方法,其特征在于,所述第二线程为所述jvm查询线程在判断出曾缓存所述第二合约时所创建的线程。
6.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-5中任一项所述的方法。
7.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的方法。