Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Bounk framework演示程序运行IPFS_Javascript_Cors_Ipfs_Embark - Fatal编程技术网

Javascript 如何使用Bounk framework演示程序运行IPFS

Javascript 如何使用Bounk framework演示程序运行IPFS,javascript,cors,ipfs,embark,Javascript,Cors,Ipfs,Embark,我对区块链非常陌生,我从各种渠道了解到,我们可以使用“登船”框架和IPF来轻松创建DApp 我已经开始运行从登船github页面的所有说明 我运行了以下命令来创建所有功能的演示 $ embark demo $ cd embark_demo 然后运行登船模拟器 $ embark simulator 一切正常,甚至localhost页面也正常工作,我能够获取和设置int值。 但是我不能使用页面的IPFS选项卡?它给出以下错误:“您正在使用的节点不支持IPFS。请确保为IPFS节点设置了CORS

我对区块链非常陌生,我从各种渠道了解到,我们可以使用“登船”框架和IPF来轻松创建DApp

我已经开始运行从登船github页面的所有说明

我运行了以下命令来创建所有功能的演示

$ embark demo
$ cd embark_demo
然后运行登船模拟器

$ embark simulator
一切正常,甚至localhost页面也正常工作,我能够获取和设置int值。

但是我不能使用页面的IPFS选项卡?它给出以下错误:“您正在使用的节点不支持IPFS。请确保为IPFS节点设置了CORS。”

但是,我已经成功地正确运行了IPFS守护进程

我还取消了index.js文件中这一行的注释

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

/*globals$,SimpleStorage,文档*/
var addToLog=函数(id,txt){
$(id+“.logs”).append(“
”+txt); }; // =========================== //区块链示例 // =========================== $(文档).ready(函数(){ $(“#区块链按钮.set”)。单击(函数(){ var value=parseInt($(“#区块链输入.text”).val(),10); simplestreage.set(值); addToLog(“#区块链”、“SimpleStorage.set(“+value+”)); }); $(“#区块链按钮.get”)。单击(函数(){ SimpleStorage.get().then(函数(值){ $(“#blockchain.value”).html(value.toNumber()); }); addToLog(“#区块链”、“SimpleStorage.get()”); }); }); // =========================== //存储(IPFS)示例 // =========================== $(文档).ready(函数(){ //var ipfs=window.IpfsApi('localhost','5001'); var ipfs=ipfsAPI({ 主机:“localhost”, 端口:“5001”, 协议:“http” }); //如果config/storage.json已“启用”:true和“提供程序”:“ipfs”,则自动设置 setProvider('ipfs'{ 服务器:'localhost', 端口:“5001” }) $(“#storage.error”).hide(); bookjs.Storage.ipfsConnection.ping() .然后(函数(){ $(“#状态存储”).addClass('status-online'); $(“#存储控件”).show(); }) .catch(函数(err){ 如果(错误){ log(“IPFS连接错误=>”+错误消息); $(“#storage.error”).show(); $(“#状态存储”).addClass('status-offline'); $(“#存储控件”).hide(); } }); $(“#存储按钮.setIpfsText”)。单击(函数(){ var值=$(“#存储输入.ipfsText”).val(); 启动js.Storage.saveText(值).then(函数(散列){ $(“span.textHash”).html(散列); $(“input.textHash”).val(散列); }); addToLog(“#storage”,“bookjs.storage.saveText(“+value+”)。然后(函数(散列){}”); }); $(“#存储按钮.loadIpfsHash”)。单击(函数(){ var值=$(“#存储输入.textHash”).val(); 启动js.Storage.get(值)。然后(函数(内容){ $($span.ipfsText”).html(内容); }); addToLog(“#storage”,“bookjs.storage.get(“+value+”).then(function(content){})”; }); $(“#存储按钮.上载文件”)。单击(函数(){ 变量输入=$(“#存储输入[类型=文件]”); 加载js.Storage.uploadFile(输入).then(函数(散列){ $($span.fileIpfsHash”).html(散列); $(“input.fileIpfsHash”).val(散列); }); addToLog(“#storage”,“bookordjs.storage.uploadFile($('input[type=file]”),然后(function(hash){})”; }); $(“#存储按钮.loadIpfsFile”)。单击(函数(){ var hash=$(“#存储输入.fileIpfsHash”).val(); var url=js.Storage.getUrl(散列); var-link=''; $($span.ipfsFileUrl”).html(链接); $(“.ipfsImage”).attr('src',url); addToLog(“#storage”,“bookjs.storage.getUrl(“+hash+”)”); }); }); // =========================== //通信(耳语)示例 // =========================== $(文档).ready(函数(){ $(“#communication.error”).hide(); web3.version.getWhisper(函数(err,res){ 如果(错误){ $(“#communication.error”).show(); $(“#通信控件”).hide()+ $(“#状态通信”).addClass('status-offline'); }否则{ setProvider('whisper'); $(“#状态通信”).addClass(“状态在线”); } }); $(“#通信按钮.ListentChannel”)。单击(函数(){ var channel=$(“#communication.listen input.channel”).val(); $(“#通信#订阅列表”).append(
订阅“+channel+”现在尝试发送消息”); 下载js.Messages.listenTo({ 主题:[频道] }).then(功能(消息){ $(“#通信#消息列表”).append(
频道:“+channel+”消息:“+message”); }); addToLog(“#communication”,“bountjs.Messages.listenTo({topic:[''''+channel+']}).then(function(message){})”; }); $(“#通信按钮.发送消息”)。单击(函数(){ var channel=$(“#communication.send input.channel”).val(); var message=$(“#communication.send input.message”).val(); 发送js.Messages.sendMessage({ 主题:频道,, 数据:信息 }); addToLog(“#communication”,“bountJS.Messages.sendMessage({topic:'“+channel+”,data:'“+message+”})”); }); });不要忘记运行ipfs(在守护程序模式下) $ipfs守护进程解决了它。使用

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST", "GET"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]'
ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'