Ipfs

如何通過 Embark 框架在 IPFS 中使用 set 和 get?

  • January 18, 2017

我正在使用 Embark 框架。我試圖在 IPFS 中儲存一個字元串值,然後使用雜湊檢索該字元串。

契約程式碼(simple_storage.sol):-

pragma solidity ^0.4.7;

contract SimpleStorage {
        string public storedData;
        function SimpleStorage() {
                     storedData = "hello world";
        }
        function set(string x) {
                     storedData = x;
        }
        function get() constant returns (string x) {
                    return storedData;
        }

}

Index.html 程式碼:-

<html>
<head>
      <title>Embark - SimpleStorage Demo</title>
      <link rel="stylesheet" href="css/app.css">
      <script src="js/app.js"></script>
</head>
<body class="container">
     <h3>Embark - SimpleStorage Demo</h3>
     <h3> 1. Set the string in the blockchain</h3>
     <div class="form-group form-inline">
          <input type="text" class="text form-control">
          <button class="set btn btn-primary">Set String</button>
    </div>
    <h3> 2. Get the current value</h3>
    <div class="form-group">
         <div>
               current value is <span class="value"></span>
         </div>
        <button class="get btn btn-primary">Get String</button>
    </div>
</body>
</html>

Index.js 程式碼:-

EmbarkJS.Messages.setProvider('orbit',{server: 'localhost', port: '5001'});
$(document).ready(function() {
     $("button.set").click(function() {
           var value = $("input.text").val();
           EmbarkJS.Storage.saveText(value).then(function(hash) {
                    SimpleStorage.set(hash);
           });
     });
    $("button.get").click(function() {
            SimpleStorage.get().then(function(hash) {
                    EmbarkJS.Storage.get(hash).then(function(content) {
                             $(".value").html(content);
                   });
           });
 });
});

我得到一個字元串作為輸入,它正確地返回字元串作為輸出。如何驗證儲存在軌道數據庫中的值?

我嘗試使用 ‘ipfs’ 而不是 ‘orbit’。但程式碼無法正常工作?有什麼問題?

看來你正在混淆EmbarkJS.StorageEmbarkJS.Messages。您應該配置儲存提供程序而不是消息之一:

EmbarkJS.Storage.setProvider('ipfs',{server: 'localhost', port: '5001'});

引用自:https://ethereum.stackexchange.com/questions/11479