我的目标是创建一个网站,要求用户登录,上传文档并使用blockchain(单点或多个标志)对其进行签名,就像signatura或{ {3}}。
我已经看过这两个网站,并且对它们如何运作有一点了解。但这是我没有得到的技术图片。
因此,作为一个中级python开发,我有一些问题。请回答。
如果各方成功签署(技术上),则在下载之前将文档上传到我的网站之后的整体流程。
如何生成私钥和公钥,是否将它们与用户信息一起存储?
如何与区块链blocksign进行互动。我已经通过api,但没有任何意义。
答案 0 :(得分:0)
Blockchain上的文档存储可能会影响其性能,因此从可伸缩性的角度来看并不总是这样。因此,最好将文档存储在分散的分布式文件系统(如IPFS(行星际文件系统))中,然后将引用传递给像以太坊这样的区块链平台。在以太坊中,您可以设计和开发具有授权证明类型的一致性算法的多重签名钱包,并调用一系列智能合约,这些合同可以帮助您以安全和可扩展的方式创作,编辑,版本,发布,存档和过期文档方式。希望能帮助到你。如果您需要有关此方法的更多详细信息,请与我们联系。
答案 1 :(得分:0)
Phew,您已经为区块链新手设定了艰巨的目标。不过,这是完全可行的。我将不按顺序回答您的问题,因为这就是代码的流向。
如何生成私钥和公钥,我将它们与用户信息一起存储吗?
您不应生成私钥。至少在必要时使用客户端代码生成它们。至于存储,您也不应存储它们。让用户将它们存储在客户端,最好是在带有Metamask之类的API的专用钱包中。
不幸的是,您的帖子暗示您的意思是比特币区块链,我不知道有任何类似的带有比特币API的钱包...如果需要,请使用最安全的可用存储和加密,但无论如何,请不要这样做将私钥发送到服务器。
如果各方均成功签署(技术上),则将文档上传到我的网站之后再进行下载之前的总体流程。
好的,让我们逐步进行示例文档签名。
现在,让我们说A要验证B是否签署了该文件。
如果所有三个步骤均成功,则现在可以确定A在交易被包含在区块中的那一刻B就在文档上签名了。
如何与区块链api进行交互。我已经通过了api,但是对我来说没有任何意义。
普通的blockchain.com API不适合此用例。您对事务的内容没有足够好的控制,而嵌入文件哈希值是必需的。
我建议您使用python-bitcoinlib或bitcoinlib-js之类的库来创建事务,并使用RPC到节点与区块链进行交互。