首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汽车可追溯性

汽车可追溯性
EN

Ethereum用户
提问于 2020-09-07 06:34:45
回答 1查看 57关注 0票数 0

我想部署一份追踪汽车的智能合同。例如,假设我正在生产10辆汽车

现在我想要的是创造一个智能的合同来追踪汽车。

所以我的智能合同有三个特点

RegisterCar {

carName:

carModel:

carVIN:

}

检查状态(可以使用区块链中的指定键调用)

{

特征将是

carName:RegisterCar.carName

carModel:RegisterCar.carModel

里程: AcceptOwnership.Milage

carVIN:RegisterCar.carVIN

currentOwner: transferOwnership.currentOwner(

isOK: Acceptownership.carStatus

}

TransferOwnership{

currentOwner:

nextOwner:

使用当前所有者的私钥进行身份验证,就像密码一样

}

**对于这一部分,我想要求从当前所有者那里传输一个密码,并且在AcceptOwnership完成时需要更新密码。

在acceptOwnership中,用户可以设置用于传输所有权的密码。

AcceptOwnership

{

carStatus:

SalesDate:

千里

}

对此有什么建议吗?

如何实现部件TransferOwnership,它必须向用户询问密码

然后,在新所有者中可以设置transferOwnership密码。

提前感谢

EN

回答 1

Ethereum用户

发布于 2020-09-07 12:36:57

您不需要密码系统,因为用户用其私钥对事务进行签名。

如果我完全理解您的用例,您想:

  1. 目前的车主提供给下一个车主他的汽车与transferOwnership
  2. 下一位车主接受与acceptOwnership的交易。

一种解决方案是使用ERC721标准(https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md)的C9模式:

代码语言:javascript
复制
function approve(address _nextOwner, uint256 _carId) external payable;

此方法将发挥您的transferOwnership函数的作用,并由当前车主调用。

代码语言:javascript
复制
function transferFrom(address _currentOwner, address _nextOwner, uint256 _carId) external payable;

此方法将是acceptOwnership函数,并由已批准的下一个所有者调用。

备注

你似乎混淆了结构和功能。

例如,汽车结构是:

代码语言:javascript
复制
struct Car {
uint256 carId;
address carOwner;
...
}
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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