通证(token)是下一代互联网数字经济的关键——元道区块链对话之一

本文探讨了区块链技术与通证的关系,指出通证不仅仅是代币,而是“可流通的加密数字权益证明”。作者强调了区块链作为后台技术支撑通证的重要性,并认为通证经济是下一代互联网数字经济的核心。文章讨论了通证的三个要素:数字权益证明、加密和可流通性,并提出将“token”翻译为“通证”的建议。此外,还阐述了通证经济如何通过市场化、提高流通速度、价格发现和智能合约应用等方面推动经济社会变革。
摘要由CSDN通过智能技术生成

【作者按】
11月27日,比特币的价格突破一万美元。而与此同时,中国的区块链产业处在什么状态?简而言之,处在黎明前的思想大混乱时期。茨威格在《昨日的世界》里这样描写一战失败之后德国人混乱的思想状况:“几百个这样的小气泡在发了酵的池塘里翻滚着,既不产生爆炸,也不留下什么,只是化作一阵恶气,把尚未愈合的德国伤口里的腐烂过程清清楚楚的暴露出来。”拿这样的词句来形容今日的中国区块链产业,虽然不太恰当,却有几分神似。

9月4日七部委联合下发的通知,对于当时已经开始恶性滋长的中国 ICO
毒瘤狠狠切下一刀。然而,这一刀切下,一部分健康力量也被误伤。同时,对之前假区块链和 ICO
之名,行欺诈、传销、非法集资之实的行为,却也没有进行进一步的清算。雷霆万钧、玉石俱焚在前,春风化雨、顾盼有情在后,此种令人心生困惑之举,两个多月来在坊间业内激起疑议纷纷。加密数字货币究竟是否正当?区块链除了用来炒代币到底还能干点什么?没有
token 的区块链究竟有多少价值?区块链应用之“正途”何在?区块链 token 之正邪边界何在?缺少 ICO
的区块链产业如何形成价值回路?围绕这种种问题,所谓“链圈”与“币圈”,已经进行了大量的讨论。至于讨论结果,可以说各怀其壁,观点林立,共识难求。你随意参加一个区块链技术或者产业研讨会,只要与会者态度坦诚,不搞一团和气、虚与委蛇,就能清楚的感受到观点的冲撞,欲望的挣扎和压抑的苦闷。整个中国区块链产业在尚未愈合的
ICO 伤口里的痛苦腐烂或是奋力蜕变的过程,清晰的暴露出来。

然而,一部分的腐烂固然不可避免,但蜕变与升华更是必然。中国区块链未来要走的路线,正在这场讨论当中酝酿和浮显。

路线问题,是中国区块链发展的首要问题。今天的区块链界,茫然无措者有之,蓄势待发者有之,砥砺前行者有之,阴行诡道、大渔其利者亦不在少数。然而今天的区块链,只是发轫之初,大道未现,鹿死谁手孰未可知,无论今天你挣了多少钱,忽悠了多少人,路线不对,有钱可以变没钱,有人可以变没人。反之,无论今天你多么艰难,只要路线正确,没钱可以有钱,没人可以有人。十年之后的区块链巨头,其成功绝不会是因为是在钱包里装了多少枚比特币,而是在今天走上了正确的路线。

中国区块链的正确路线,既不能是欺诈传销、疯狂炒作的不法路,也不能是从空到空、不接实体的不归路,既不能是桀骜叛逆、另起炉灶的去中心化原教旨主义之路,也不能是墨守成规、自废武功的不争气之路。中国区块链的道路,必须充分发挥区块链的革命性、创新性,同时又充分服务于实体经济、实体产业,既能与中国现实制度对接,又能牵引经济和社会的进步。

探讨中国区块链的正确路线,需要更加理性和有条理的讨论,也需要更有经验、思考更深远的人参与。在我与之交流过的国内区块链达人当中,元道先生是观点特别深刻的一位。

元道先生的真实身份是中国规模最大电信中立IDC运营商世纪互联数据中心的创始人、董事长陈升。另一方面,他又是国内区块链最早的倡导者之一,是一个思想者。中立IDC需要他冷静、保守、稳如泰山,而区块链需要他创新、颠覆、激情澎湃。因此他喜欢说自己有两顶帽子。当他戴上“中立IDC”的帽子时,他是陈升。而当他摘下“中立IDC”的帽子,戴上“区块链”的帽子时,他更喜欢用“元道”这个名字。

元道先生很早就关注比特币的发展,并且在2013年开始关注比特币背后的区块链技术。2014年初,他开始联合官产业界有识之士布局区块链产业,并且率先提出将“blockchain”翻译为“区块链”,开国内链圈发展之滥觞。在中关村管委会的支持下,2016年世纪互联作为理事长单位发起成立了中关村区块链产业联盟,目前元道正在低调筹备团结”多利益关联方”(multistakeholder)的全球区块链基础设施平台创业项目-Palliums(简称柏链,Pallium直译就是大脑皮层,这是人类作为高级哺乳动物的最重要标志。大脑皮层就像一台极其复杂的生物超级计算机,可以称之为“发明创造之母,抽象思维之父“,柏链这个有情怀的项目名称背后应该隐藏着一个很大的布局)。对于区块链,他想得早,想得多,看得透,有些问题他的思考确实令我有豁然开朗的

  • 16
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
在使用WebSocket进行通信时,我们通常需要对连接进行验证和授权,以确保只有经过身份验证的用户才能访问WebSocket。本文将介绍如何使用Token验证并将WebSocket的clientId绑定到用户的uid(微信)上实现WebSocket通信。 1. Token验证 在使用WebSocket建立连接时,可以在请求头中携带Token进行验证。我们可以在后端实现一个Token验证的过滤器,用于验证请求头中的Token是否有效。如果Token无效,则返回错误信息并关闭WebSocket连接;如果Token有效,则允许WebSocket连接。 以下是一个Token验证的Java代码示例: ```java public class TokenFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; String token = req.getHeader("token"); // 从请求头中获取Token if (token == null) { // 如果Token为空,返回错误信息并关闭WebSocket连接 HttpServletResponse resp = (HttpServletResponse) response; resp.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Token is required"); return; } // 验证Token是否有效,验证通过则允许WebSocket连接,否则返回错误信息并关闭WebSocket连接 if (validateToken(token)) { chain.doFilter(request, response); } else { HttpServletResponse resp = (HttpServletResponse) response; resp.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Invalid token"); } } private boolean validateToken(String token) { // Token验证逻辑 return true; // 如果Token有效,则返回true,否则返回false } } ``` 在使用WebSocket时,我们需要在WebSocket请求中添加Token头信息,如下所示: ```javascript const ws = new WebSocket("ws://localhost:8080/websocket"); ws.onopen = function(event) { ws.send("Hello WebSocket"); // 发送消息 }; ws.setRequestHeader("token", "your_token"); // 添加Token头信息 ``` 2. clientId绑定到uid上 在WebSocket连接建立时,我们可以将WebSocket的clientId与用户的uid进行绑定,以便后续使用时能够快速找到对应的用户。在这里,我们以微信用户的openid作为用户的uid进行绑定。 在后端,我们可以维护一个WebSocket连接管理器,用于管理WebSocket连接和用户的绑定关系。当WebSocket连接建立时,我们可以将clientId和openid进行绑定,并将绑定关系保存到连接管理器中。 以下是一个WebSocket连接管理器的Java代码示例: ```java public class WebSocketManager { private static final Map<String, WebSocketSession> sessions = new ConcurrentHashMap<>(); private static final Map<String, String> clientIdToOpenid = new ConcurrentHashMap<>(); public static void addSession(String clientId, WebSocketSession session) { sessions.put(clientId, session); } public static void removeSession(String clientId) { sessions.remove(clientId); clientIdToOpenid.remove(clientId); } public static void bindClientIdToOpenid(String clientId, String openid) { clientIdToOpenid.put(clientId, openid); } public static String getOpenidByClientId(String clientId) { return clientIdToOpenid.get(clientId); } public static WebSocketSession getSessionByClientId(String clientId) { return sessions.get(clientId); } } ``` 当WebSocket连接建立时,我们可以在WebSocket处理器中获取openid,并将clientId和openid进行绑定,如下所示: ```java @Component public class WebSocketHandler extends TextWebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { String clientId = session.getId(); // 获取WebSocket的clientId String openid = getOpenidFromSession(session); // 获取用户的openid WebSocketManager.addSession(clientId, session); // 将WebSocket连接添加到连接管理器中 WebSocketManager.bindClientIdToOpenid(clientId, openid); // 将clientId和openid进行绑定 } private String getOpenidFromSession(WebSocketSession session) { // 从WebSocket的Attributes中获取用户的openid return (String) session.getAttributes().get("openid"); } } ``` 在后续使用WebSocket时,我们可以根据用户的openid快速找到对应的WebSocket连接,如下所示: ```java String openid = "your_openid"; String clientId = WebSocketManager.getClientIdByOpenid(openid); WebSocketSession session = WebSocketManager.getSessionByClientId(clientId); if (session != null && session.isOpen()) { session.sendMessage(new TextMessage("Hello WebSocket")); } ``` 以上就是使用Token验证并将WebSocket的clientId绑定到用户的uid上实现WebSocket通信的方法。通过Token验证,我们可以确保WebSocket连接的安全性;通过将clientId和openid进行绑定,我们可以快速找到对应的WebSocket连接,提高通信的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值