Javascript 如何使用Bounk framework演示程序运行IPFS
我对区块链非常陌生,我从各种渠道了解到,我们可以使用“登船”框架和IPF来轻松创建DApp 我已经开始运行从登船github页面的所有说明 我运行了以下命令来创建所有功能的演示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
$ 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 '["*"]'