gramine运行nodejs例程

首先,
修改js例程代码:

const {
    
     Web3 } = require('web3');
const rpcURL = "https://sepolia.infura.io/v3/40b89bc0f5584056b19626b521ee5874";
const web3 = new Web3(rpcURL);
const address = "0xde51E698b4585Af1C8322cc084ABbdbDcfe53361";

async function getBalance() {
    
    
    try {
    
    
        const wei = await web3.eth.getBalance(address);
        const balance = web3.utils.fromWei(wei, 'ether');
        console.log('账号:', address, ' 的余额为:', balance);
    } catch (error) {
    
    
        console.error('发生错误:', error);
    }
}

getBalance();

我们直接运行,结果如下:
在这里插入图片描述
说明nodejs直接运行没问题,
在gramine运行nodejs,

gramine-direct ./nodejs helloworld.js

但是这里报错了,我暂时不会改,已经提交了issues,等我知道了怎么改再回来写,
这里js替换为

console.log("Hello World!")

输出

Hello World!

例程运行成功!

---------更新分割线-------

我太菜了,
人家官方文档里有这个允许外部域名连接的选项,但是我看不懂,
在manifest文件里加入指令

sys.enable_extra_runtime_domain_names_conf = true

再次运行指令

gramine-direct ./nodejs helloworld.js

输出,但是运行时间有点长,大概要3-4秒,不太清楚整个的运行逻辑,
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47485810/article/details/135591424