Coder Social home page Coder Social logo

awesome-nebulas's People

Contributors

cssmagic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-nebulas's Issues

DApp 开发好了,如何提交给星云参加 “激励计划”?

  1. 在星云官网 注册星云开发者账号 (这是我的邀请链接,通过此链接注册,可获额外 10 NAS 奖金)

  2. 进入 这个页面 填写提交表单。

在这个表单里,大部分内容都比较好填,可能只有下面这两项会挡你一下:

  • “合约哈希”:不知道填什么,请参考这里

  • “合约使用说明”:建议填写合约的主要接口和对应的功能。比如我的 DApp “我是预言帝” 在提交时是这样填的,仅供参考:

主要接口及其功能:
* 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.queryPayInfo() 查询交易结果,总是得到 "payId *** does not exist" 是怎么回事?

有几种可能:

  • 代码写错了,接口打到了错误的服务器。比如向主网注册流水号,然后向测试网查询。不过这种情况一般不太可能发生。

  • 服务器不稳定,即 nebPay 向服务器注册流水号失败,自然也无法向服务器查询出结果。这种情况偶尔会遇到。

  • 有网友说是 nebPay 的 bug,拉最新代码自己 build 一下就行了。

如何查询自己钱包的 NAS 余额?

有几种方法:


相关问题:

如何获取用户的钱包地址?在手机端浏览器网页中能获取到吗?

概述

目前唯一能获取用户钱包地址的方式是向 “星云钱包 Chrome 扩展” 询问。可以直接通过 postMessage() 的方式 与扩展交互,也可以使用 Nasa.js 的 Nasa.user.getAddr() 接口。

不过可惜的是,“星云钱包 Chrome 扩展” 很可能会在将来的版本中去除此功能。

手机端

由于手机端浏览器无法安装 “星云钱包 Chrome 扩展”,因此没有任何途径可以获取用户钱包地址。

解决方案

  • 在必要时向用户询问。
  • 当用户完成一笔交易(转账或调用合约)之后,可以获取付款方(from)的地址,也就是当前用户的钱包地址。

智能合约部署上线之后还可以修改吗?我的 DApp 要升级怎么办?

能否修改

智能合约一旦部署上线,就无法修改。所以部署之前请全面测试。

DApp 如何升级

目前可行的做法:

  • 启用新合约:
    1. 把老合约里的数据导出
    2. 再导入到新合约
    3. 客户端启用新合约

将来可行的做法:

  • 合约调合约(据说在开发中)
    • 把合约中 “负责业务逻辑的部分” 和 “负责存储数据的部分” 拆成两个合约,单独部署
    • 单独升级负责业务逻辑的合约
  • 合约共享数据(官方文档显示将来应该会有)
    • 直接启用新合约即可

在手机钱包(NAS nano)里生成的钱包地址如何导入到桌面版 Chrome 钱包扩展中?

  1. 在手机钱包(NAS nano)里,进入 “Me” tab,选择 “Manage Wallet”,选择要导出的钱包,选择 “Backup” → “Keystore”。

  2. 按提示,获得 Keystore 的内容(一串 JSON 格式的文本)。

  3. 想办法把这段文本保存到电脑上,存成一个 JSON 文件。之后就可以在桌面版 Chrome 钱包扩展里导入这个钱包地址了。

⚠️ 注意:在这个过程不中要泄漏你的 Keystore。中间过程(剪贴板、聊天记录、临时文件等)尽快清理干净。

TPS 是什么意思?

概述

TPS 的意思是 “每秒交易数”(Transactions Per Second)。

TPS 越高,可以理解为写入数据的性能越高,从而开发体验和使用体验也随之提升。

我对 TPS 的理解(不一定对)

即使 TPS 达到 2000,也不代表实际的写入速度可以达到 1/2000 秒。

目前主网有 21 个矿工节点,以 15s 为间隔轮流出块。只有出块,交易才算完成,数据才算写入。因此,TPS 的值只是计算结果,完全可以通过单个区块所能包含的最大交易量来拉高。

从实际体验上来说,完成一笔交易通常需要 0~15 秒,看运气;如果遇上交易拥堵,等待时间还有可能加长。因此,在 DApp 开发中往往需要多次轮询,才能得到交易的返回结果。

另外,单个区块所能包含的数据量是有限的,而每个交易所附带的数据(比如部署智能合约)也会占空间,因此每个交易的体积会影响实际的 TPS。

DApp 创意:签到小程序

概述

功能与操作:

  • 活动发起方生成一张签到二维码,张贴在活动地点。
  • 活动参与者到场之后,使用小程序扫码签到。
  • 活动发起者可浏览签到记录。

由于小程序无法与区块链直接交互,本应用需要搭一个服务端。

产品功能

小程序端:

  • 小程序扫码签到(通过 API 打到服务端,并给出操作结果)
  • 发起活动(得到二维码)
  • 我的活动(浏览签到记录)

服务器端:

  • 生成签到二维码
  • 提供签到 API 给客户端(HTTPS)

待确认的技术要点

小程序端:

  • 小程序端收费的可能性(法币或 NAS)

服务器端:

  • 服务器如何写数据上链?
  • 费用如何计算?
  • 打卡次数如何做限制(防止恶意消耗 NAS)?
    • 每用户每天只能签到 N 次
    • 每个活动总共只能签到 M 次

如何创建自己的星云钱包(钱包地址)?


⚠️ 注意:请务必保管好自己的密码、Keystore 文件、助记词,谨防丢失、谨防泄漏!

  • Keystore 文件:使用 Web 钱包和 Chrome 扩展创建钱包时得到的 JSON 文件。
  • 助记词:使用星云手机钱包 APP 创建钱包得到的一串英文单词。

“合约哈希” 是什么意思?在哪里能找到?

在提交 DApp 时需要填写一个 “合约哈希”,在哪里能找到?

“合约哈希” 就是你部署合约的那次交易的 hash 值。如果当时没记下来,也可以参考以下步骤找回:

  1. 打开 星云浏览器,在搜索框填入合约地址,搜索。

  2. 在打开的合约详情页中点击 “View Smart Contract” 可以进入部署合约时的交易详情页。

  3. 在交易详情页的 “TxHash” 字段可以看到你需要的 “合约哈希”。

(图有空再补吧)

为什么在苹果 App Store 无法安装 NAS nano(星云手机钱包 App)?

由于某些原因,NAS nano(星云手机钱包 App)暂时无法在**大陆的苹果 App Store 上架,目前仅可以在 US 或 HK 等地区的 App Store 下载。

因此,当 iPhone 用户按照 NAS nano 官网的引导尝试安装时,可能会遇到以下错误提示:

error-app-store

如果你无法放弃 iPhone,就需要想办法注册一个 US 或 HK 区的 App Store 账号,然后在 iPhone 上临时登录此账号,并安装 NAS nano。安装完再切回你的主力账号。

当 NAS nano 有版本更新的时候,也需要临时切到 US 或 HK 区升级。


如果你打算换一台 Android 手机,魔法哥向你推荐 “坚果手机”。

DApp 不能在 Windows 上开发吗?

没有这个限制。在 Windows 上可以开发 DApp。

你的电脑上只需要安装 Chrome 和星云钱包扩展,就可以正常使用和调试 DApp 了。除此以外,跟开发其它 Web 应用没什么区别。

如果你要在本地搭建星云私链的话,则可能需要 Mac 或 Linux。当然你也可以在 Windows 上使用 Docker 来搭建私链。

2018-07-04 星云链主程 Roy 直播内容(魔法哥听译整理评注)

分享环节(介绍合约新特性)

  • 真正的随机数生成器,任何人无法预测、无法干预。(链内解决随机数问题,非常优雅!)

  • Inner TX,链内交易(合约调合约)。

    • 合约调合约最多调用三层 ( User -> A -> B -> C ),再多就不行了。
    • 合约间调用可以支付 NAS 或 token(代币)。(也就是说,被调用方可以收费。来来来,基础服务做起来~~)
  • 合约内置的新库(加密库)。可以在合约内使用 MD5 等加密方法。

访谈环节

  • 第一个问题:Nebulas Force 是啥?(这个大家可以看白皮书,不解释了。)

  • 第二个问题:开发合约有哪些优雅的姿势?大家都在期待 WebIDE,这个还在弄。目前开发者可以在合约里埋点,通过 Event 抛出,然后自己捕捉调试。(这个我不熟悉,不过据说 Event 现在也不是很好用。)

  • 第三个问题:(我没跟上,好像是跟社区建设相关。)

  • 第四个问题:移动端如何在测试网测试?星云发了两个版本的钱包 app,分别对应主网和测试网。(但实际上一般人只能找到主网版本;我装了两个,但似乎无法有选择地调起其中任一。)

  • 第五个问题:激励计划第二季怎么搞?(这个我也没跟上,静候官方消息就好。)

  • 第六个问题:合约本地存储是怎么实现的?以太坊用的是 LevelDB(音),而星云是用 RocksDB(音)。经我们测试,后者性能有十倍胜出。

  • 第七个问题:关于钱包的问题。(我也没跟上,好像说的是 token 和安全相关,很努力地保障安全性。)

  • 第八个问题,这个要关注:星云合约接下来会支持哪些语言?将支持 WebAssembly。(这将支持更多可以编译到 WebAssembly 的高级语言。剑指 EOS,可以可以!)

  • 第九个问题:关于 Oracel。(我不是很了解)

什么是 gas/油费/矿工费/手续费?

概述

星云链上的很多操作都是需要消耗节点算力的,并且所产生的数据更新需要在节点之间同步。

这些高成本的操作需要支付 gas,有时也称作 “油费/矿工费/手续费”。

Gas 如何计算?

(待补充)


相关链接:

基础设施创意:星云链高速缓存节点 (by Orange)

知名 DApp 开发者 Orange 在星云官方群里提到了一个创意:

推荐给开发者一个Idea:对标 https://infura.io,开发基于星云的高速缓存节点,提供服务。这个只要做得比较理想,前三问题应该不大。

主网卡顿是很大的痛点,有了高速缓存节点,基于内存数据库存放区块数据可以极大提高响应速度。

售卖访问令牌都能赚不少钱 [捂脸]

不一定一开始就要很完善吧,可以持续迭代。

在功能上,需要能够实现基本的 neb.js 的 API。

获奖后如何领奖?

准备工作

领奖

每周二会出评审结果,可以在 “我的 DApp” 页面看到自己是否已获奖。

注意:如果获奖了,千万不要以为等着收 NAS 就行了。

官方会在周三左右发一封领奖通知邮件到你的注册邮箱(注意:此邮件可能会被误判为垃圾邮件),邮件里有一个登记表的链接,你需要填写你的个人信息。务必在周四晚之前填好。

大约在周五可以收到奖金。

DApp 创意:付费问答平台

前言

最近的 一点心得

在设计 DApp 的过程中,我深深感受到,站在 #区块链# 的肩膀上,DApp 天生被赋予两大能力:

  • 账号体系:每个用户天生拥有账号身份(钱包地址),应用无需自建账号系统。

  • 支付体系:用户天生具有 “支付” 能力,应用无需对接支付平台。

从这个角度来看,个人开发者可以比较容易地开发出平台性的应用。

产品功能

(大家自己脑补一下吧,类似分答、微博问答等产品,就是那些功能 😂 )

如何在测试网(testnet)开发和测试?


简单记录一下,部分内容未验证,仅供参考。


安装 testnet 版的手机钱包 App(NAS nano)

  • iOS for Testnet: itms-services://?action=download-manifest&url=https://testnet.nebulas.io/static/wallet/ios/NASnano.plist(请在 iPhone 上打开此链接进行安装)
  • Android for Testnet(请在安卓手机上打开此链接进行安装)

Chrome 钱包扩展

在钱包扩展弹窗的右上角,把 mainnet 切换为 testnet。此后钱包扩展的所有请求都会发送到 testnet。

nebPay

options.debug 设置为 true,在手机浏览器中将唤起 testnet 版的手机钱包 App。

Nasa.js

(待补充)

如何查看别人的合约代码?

  1. 打开 星云浏览器,在搜索框填入合约地址,搜索。

  2. 在打开的合约详情页中:

    • 点击 “Contract Code” tab 可以看到合约代码。

    • 点击 “View Smart Contract” 可以进入部署合约时的交易详情页,在页面中的 “Payload Data” 字段也可以看到合约的代码,以及更多部署合约时的信息。

(图有空再补吧)

上应用需要官方同意么

我是小白,就是想问一下上一个DAPP需要公链官方认可么?比如博.彩、色.情的DAPP应用(打个比方,因为这两个最挣钱)。

因为不同地区法律不一致,会不会因为主链在**大陆而不能上此类应用,如果公链不能自主上应用,还是公开的公链么!

调用 HTTP 接口有时会提示我跨域错误('Access-Control-Allow-Origin' 响应头丢失)是怎么回事?

有时,在浏览器控制台可以看到以下错误信息:

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 的原理。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.