nasateam / awesome-nebulas Goto Github PK
View Code? Open in Web Editor NEW星云链 DApp 开发文档、资料、工具、教程大全 | A collection of Nebulas blockchain DApp development tools and docs
星云链 DApp 开发文档、资料、工具、教程大全 | A collection of Nebulas blockchain DApp development tools and docs
本文档已经迁移到: cssmagic/DApp-Dev-Group#1
在这个表单里,大部分内容都比较好填,可能只有下面这两项会挡你一下:
主要接口及其功能:
* create(author_name, content) - 创建一条新消息
* like(id) - 对某条消息点赞
* getMessageById(id) - 查询指定消息的详情
* getAllMessages(limit = 10, offset = 0) - 查询所有消息(默认每页 10 条,可翻页)
* getHotMessages(limit = 10, offset = 0) - 获取点赞排行榜(默认每次取 10 条,可翻页)
* getMessagesByAuthorAddr(addr, limit = 10, offset = 0) - 查询指定用户创建的所有消息(默认每页 10 条,可翻页)
祝你好运!
有几种可能:
代码写错了,接口打到了错误的服务器。比如向主网注册流水号,然后向测试网查询。不过这种情况一般不太可能发生。
服务器不稳定,即 nebPay 向服务器注册流水号失败,自然也无法向服务器查询出结果。这种情况偶尔会遇到。
有网友说是 nebPay 的 bug,拉最新代码自己 build 一下就行了。
有几种方法:
相关问题:
目前唯一能获取用户钱包地址的方式是向 “星云钱包 Chrome 扩展” 询问。可以直接通过 postMessage()
的方式 与扩展交互,也可以使用 Nasa.js 的 Nasa.user.getAddr()
接口。
不过可惜的是,“星云钱包 Chrome 扩展” 很可能会在将来的版本中去除此功能。
由于手机端浏览器无法安装 “星云钱包 Chrome 扩展”,因此没有任何途径可以获取用户钱包地址。
from
)的地址,也就是当前用户的钱包地址。智能合约一旦部署上线,就无法修改。所以部署之前请全面测试。
目前可行的做法:
将来可行的做法:
迁移至: NasaTeam/Nasa.js#17
在手机钱包(NAS nano)里,进入 “Me” tab,选择 “Manage Wallet”,选择要导出的钱包,选择 “Backup” → “Keystore”。
按提示,获得 Keystore 的内容(一串 JSON 格式的文本)。
想办法把这段文本保存到电脑上,存成一个 JSON 文件。之后就可以在桌面版 Chrome 钱包扩展里导入这个钱包地址了。
http://nasgo.top/#/ 天天领NAS 是目前唯一还活着,可以领到nas的平台了。可以加到列表里
我认为应该是瞬时同步的。因为现在的节点都是官方的,轮流出块,达成共识应该不需要花时间。
我的理解是这样。
TPS 的意思是 “每秒交易数”(Transactions Per Second)。
TPS 越高,可以理解为写入数据的性能越高,从而开发体验和使用体验也随之提升。
即使 TPS 达到 2000,也不代表实际的写入速度可以达到 1/2000 秒。
目前主网有 21 个矿工节点,以 15s 为间隔轮流出块。只有出块,交易才算完成,数据才算写入。因此,TPS 的值只是计算结果,完全可以通过单个区块所能包含的最大交易量来拉高。
从实际体验上来说,完成一笔交易通常需要 0~15 秒,看运气;如果遇上交易拥堵,等待时间还有可能加长。因此,在 DApp 开发中往往需要多次轮询,才能得到交易的返回结果。
另外,单个区块所能包含的数据量是有限的,而每个交易所附带的数据(比如部署智能合约)也会占空间,因此每个交易的体积会影响实际的 TPS。
功能与操作:
由于小程序无法与区块链直接交互,本应用需要搭一个服务端。
小程序端:
服务器端:
小程序端:
服务器端:
在使用钱包插件发起交易的时候,如果一不小心关闭了合约交易窗口,在工具栏的插件窗口中,仍然可以继续完成交易,或者取消交易。
在提交 DApp 时需要填写一个 “合约哈希”,在哪里能找到?
“合约哈希” 就是你部署合约的那次交易的 hash 值。如果当时没记下来,也可以参考以下步骤找回:
打开 星云浏览器,在搜索框填入合约地址,搜索。
在打开的合约详情页中点击 “View Smart Contract” 可以进入部署合约时的交易详情页。
在交易详情页的 “TxHash” 字段可以看到你需要的 “合约哈希”。
(图有空再补吧)
由于某些原因,NAS nano(星云手机钱包 App)暂时无法在**大陆的苹果 App Store 上架,目前仅可以在 US 或 HK 等地区的 App Store 下载。
因此,当 iPhone 用户按照 NAS nano 官网的引导尝试安装时,可能会遇到以下错误提示:
如果你无法放弃 iPhone,就需要想办法注册一个 US 或 HK 区的 App Store 账号,然后在 iPhone 上临时登录此账号,并安装 NAS nano。安装完再切回你的主力账号。
当 NAS nano 有版本更新的时候,也需要临时切到 US 或 HK 区升级。
如果你打算换一台 Android 手机,魔法哥向你推荐 “坚果手机”。
没有这个限制。在 Windows 上可以开发 DApp。
你的电脑上只需要安装 Chrome 和星云钱包扩展,就可以正常使用和调试 DApp 了。除此以外,跟开发其它 Web 应用没什么区别。
如果你要在本地搭建星云私链的话,则可能需要 Mac 或 Linux。当然你也可以在 Windows 上使用 Docker 来搭建私链。
真正的随机数生成器,任何人无法预测、无法干预。(链内解决随机数问题,非常优雅!)
Inner TX,链内交易(合约调合约)。
合约内置的新库(加密库)。可以在合约内使用 MD5 等加密方法。
第一个问题:Nebulas Force 是啥?(这个大家可以看白皮书,不解释了。)
第二个问题:开发合约有哪些优雅的姿势?大家都在期待 WebIDE,这个还在弄。目前开发者可以在合约里埋点,通过 Event 抛出,然后自己捕捉调试。(这个我不熟悉,不过据说 Event 现在也不是很好用。)
第三个问题:(我没跟上,好像是跟社区建设相关。)
第四个问题:移动端如何在测试网测试?星云发了两个版本的钱包 app,分别对应主网和测试网。(但实际上一般人只能找到主网版本;我装了两个,但似乎无法有选择地调起其中任一。)
第五个问题:激励计划第二季怎么搞?(这个我也没跟上,静候官方消息就好。)
第六个问题:合约本地存储是怎么实现的?以太坊用的是 LevelDB(音),而星云是用 RocksDB(音)。经我们测试,后者性能有十倍胜出。
第七个问题:关于钱包的问题。(我也没跟上,好像说的是 token 和安全相关,很努力地保障安全性。)
第八个问题,这个要关注:星云合约接下来会支持哪些语言?将支持 WebAssembly。(这将支持更多可以编译到 WebAssembly 的高级语言。剑指 EOS,可以可以!)
第九个问题:关于 Oracel。(我不是很了解)
星云链上的很多操作都是需要消耗节点算力的,并且所产生的数据更新需要在节点之间同步。
这些高成本的操作需要支付 gas,有时也称作 “油费/矿工费/手续费”。
(待补充)
相关链接:
知名 DApp 开发者 Orange 在星云官方群里提到了一个创意:
推荐给开发者一个Idea:对标 https://infura.io,开发基于星云的高速缓存节点,提供服务。这个只要做得比较理想,前三问题应该不大。
主网卡顿是很大的痛点,有了高速缓存节点,基于内存数据库存放区块数据可以极大提高响应速度。
售卖访问令牌都能赚不少钱 [捂脸]
不一定一开始就要很完善吧,可以持续迭代。
在功能上,需要能够实现基本的 neb.js 的 API。
前言
最近的 一点心得:
在设计 DApp 的过程中,我深深感受到,站在 #区块链# 的肩膀上,DApp 天生被赋予两大能力:
账号体系:每个用户天生拥有账号身份(钱包地址),应用无需自建账号系统。
支付体系:用户天生具有 “支付” 能力,应用无需对接支付平台。
从这个角度来看,个人开发者可以比较容易地开发出平台性的应用。
(大家自己脑补一下吧,类似分答、微博问答等产品,就是那些功能 😂 )
简单记录一下,部分内容未验证,仅供参考。
itms-services://?action=download-manifest&url=https://testnet.nebulas.io/static/wallet/ios/NASnano.plist
(请在 iPhone 上打开此链接进行安装)在钱包扩展弹窗的右上角,把 mainnet
切换为 testnet
。此后钱包扩展的所有请求都会发送到 testnet。
把 options.debug
设置为 true
,在手机浏览器中将唤起 testnet 版的手机钱包 App。
(待补充)
打开 星云浏览器,在搜索框填入合约地址,搜索。
在打开的合约详情页中:
点击 “Contract Code” tab 可以看到合约代码。
点击 “View Smart Contract” 可以进入部署合约时的交易详情页,在页面中的 “Payload Data” 字段也可以看到合约的代码,以及更多部署合约时的信息。
(图有空再补吧)
很可能是因为你的钱包地址没有余额。矿工会一直把你的交易很后推,你的交易自然也没有机会被打包上链。
我是小白,就是想问一下上一个DAPP需要公链官方认可么?比如博.彩、色.情的DAPP应用(打个比方,因为这两个最挣钱)。
因为不同地区法律不一致,会不会因为主链在**大陆而不能上此类应用,如果公链不能自主上应用,还是公开的公链么!
有时,在浏览器控制台可以看到以下错误信息:
Failed to load https://mainnet.nebulas.io/v1/user/call: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'xxxx' is therefore not allowed access. The response had HTTP status code 522.
出现这种错误并不是你的代码出了问题,而是服务器不稳定,报 522 错误。522 状态码误表示 “Connection Timed Out”,连接超时。
此时往往重新请求一次就能得到正常的结果。如有必要,可以考虑在自己的代码中增加重试机制。
至于浏览器为什么会报跨域错误,大家可以详细了解一下 CORS 的原理。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.