首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web3.js事务安全性/差异

web3.js事务安全性/差异
EN

Ethereum用户
提问于 2018-02-24 18:07:33
回答 1查看 276关注 0票数 3

在学习如何使用web3.js包时,我遇到了两种类型的事务:

RawTransaction/web3.eth.sendawTransaction(.)和

简单事务/web3.eth.sendTransaction(.)

我知道,为了创建一个原始事务,您创建了transaction对象,并为每个键设置了一个十六进制值。我不明白的是:

(1)你为什么要把所有的值都表示为十六进制?(例如gasLimit、gasPrice、nonce等)

2)为什么使用原始事务而不是正常事务。我发现您离线签了tx,然后简单地传递散列,但是这样做有什么意义呢?我是说你什么时候要把tx弄成原样?

如果你认为还有什么是我需要知道的,或者你能提供有帮助的资料,我会非常感激的。

干杯!

EN

回答 1

Ethereum用户

发布于 2018-02-24 21:11:21

(1)你为什么要把所有的值都表示为十六进制?

因为对于原始事务,您必须以用于签名的格式准备原始数据。这是在使用sendTransaction时隐藏的东西。

你可以在这两篇文章中看到这两篇文章的不同之处:

web3.js中事务和原始事务之间的差异

什么是“原始事务”,它用于什么?

2)为什么使用原始事务而不是普通事务?

如果您有一个本地可访问的节点,则可以使用sendTransaction,因为您的帐户是在节点中管理的。但是对于这样的情况,您没有自己的节点,而是使用第三方节点将您的事务依赖于网络。由于您不想向这些节点显示您的私钥,所以您必须在本地(例如,在浏览器的客户端的JavaScript中)以原始格式准备和签署事务,然后在(不一定是值得信任的)委托节点上调用sendRawTransaction。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/40808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档