明明颜值在线,偏靠一手代码行走江湖,这位奇女子还是V神嫡传 | 人物志

640?wx_fmt=jpeg


虽然久闻大名,但第一次见到Hsiao-Wei Wang却是在不久前的香港。


西铁线驶过人群鼎沸的尖东一路向西,在另一个大的人流交汇处荃湾的一个不大不小的会议酒店。以太坊核心开发者汇集于此,人们仰望的技术大牛,或者说精神支柱,依次上台。


Hsiao-Wei Wang也在其中,如果不算致辞,Hsiao-Wei Wang应该是第三位出场的嘉宾,与Karl Floersch同为「以太坊核心研究者」。


640?wx_fmt=jpeg

熟悉以太坊开发的人都知道,这些年只要以太坊开发者聚集的地方总能看到这样一道倩影。她声音不高,看上去甚至有些柔弱,但一谈起那些连开发者看到都眼晕的技术话题和公式,总会让人感受到她的坚定和爆发力。


640?wx_fmt=jpeg

以太坊台北开发者大会合影(第一排正中为Hsiao-Wei Wang)


她所研究的Sharding技术是以太坊目前最看重的方向之一,连V神也曾说这个会长远来做,这么重的单子交给Hsiao-Wei Wang可谓任重而道远。但她又有程序员的那种独有的轻松与个性,比如在决定是否接受我采访的时候,她提出的唯一要求是「不要谈两岸关系」。


那么,Hsiao-Wei Wang究竟是个怎样的人?她的技术之路又是怎样的?这个明明可以靠脸却偏偏要拼实力的妹子背后,又有哪些不为人知的故事呢


今天,营长就走近Hsiao-Wei Wang,听她聊聊自己与以太坊及区块链的那些事。


以下内容根据与Hsiao-Wei Wang对话整理。(以下对话「区块链大本营」简称「大本营」;Hsiao-Wei Wang简称「Wang」)



“我很勇敢也很熊”


大本营:请介绍一下你的个人背景及经历。

Wang:我原本是后端工程师,大概两年前一头栽进区块链。在去年看到 Vitalik 在找对以太坊研究有兴趣的 contributor(贡献者)后自告奋勇,目前持续在sharding(分片技术)的研究与开发。


大本营:如果用几个关键词来形容你自己,会是哪几个?

Wang:出乎意料的勇敢、诚恳、熊。(黑人问号……) 

在有限的范围内,我觉得「人生只有一次啊」,所以会做出一些相对冒险的选择;

而诚恳比较像是一个目标,不知道达到了没,但真的有在努力中(笑);

熊则是一个不知道帐号要取什么而加的symbol(特点),棕熊猫熊白熊都很美丽。


640?wx_fmt=gif


大本营:最近的主要工作有哪些?目前最关心的技术有哪些?

Wang:主要有:Casper/Shading/Beacon chain Spec的review与PoC实作,以及Sharding P2P networking 的研究,还有一些Devcon4的事务,喔,Devcon 4会很有趣的。


至于最关心的技术,当然还是Sharding,然后因为最近Sharding与Casper从好朋友变成超级好朋友了所以也很关心Casper。还有在补足Algorithmic Game Theory(算法博弈论)的知识。



美女开发者眼中的以太坊


大本营:你从什么时候开始接触区块链?当时对这门技术有怎样的看法?

Wang:好几年前听过比特币的存在,但实际研究技术是大约两年多前。至于看法,只能说相见恨晚。看过比特币白皮书后觉得自己被中本聪的协议设计巧思震慑,第一次感受到到能够用工作量证明来达到机率性的共识时很惊艳。


大本营:区块链技术最让你着迷的地方是什么?从事区块链开发对你有哪些影响?

Wang:最着迷的是去中心化应用的可能性!听起来很梦幻,但真正有turning the world upside down(改变世界)的潜力。


对于个人影响的话嘛,很高兴认识了很多世界各地有趣的人!要学着从不同的角度思考问题才能理解不同角色的行为。然后英文应该变好了一点点,吧(笑)。


大本营:你从什么时候开始研究以太坊?你所研究的分片技术会有哪些改变?

Wang:我大约一年半前拜读以太坊的黄皮书,开始熟悉 EVM 架构和撰写智能合约。后来对可扩展性问题有兴趣,开始专注在以太坊分片(Sharding)研究上。


当时我看到的第一个版本是 Vitalik 写的basic sharding(基础分片),这个版本很简短,但其中已经有异步跨分片交易的轮廓。之后 Vitalik 把这个版本再简化成另一个版本,并加上了无状态客户端(stateless client)与账户抽象层(account abstraction)的设计。


今年的第一个重大路线改变是第一阶段改为只有数据层,此一改变使得我们专注在可行的扩展方案的设计。在过往的设计中,shard chain 类似于目前 Ethereum PoW的侧链。


今年的第二个重大改变则是以全新的一条类似 Dfinity beacon chain 作为 sharding 设计的核心,也大幅改善了随机数产生器的设计。当然,最重要的进展是 Casper 与 Sharding 的路线合并,这点对 Sharding 路线的影响较没有对于 Casper 那么剧烈。但对我们来说,新路线整合了同一个 PoS 设计是相当合理的,同时也减少了目前大家正在使用的 PoW主链的向后兼容。


我认为,以太坊作为公链的领头羊之一,若要同时顾虑现有生态的经济议题、治理议题(governance)、扩容议题等。大幅更新的步调不易加快,但社区的活跃度和精神文化是以太坊的资产,社区的支持是最大的动能。


大本营:作为以太坊的研究者,你怎样看待这一平台?从技术上来说,你认为以太坊的优缺点各是什么?

Wang:我很喜欢以太坊的设计哲学中的「平台一般性」(Generalization)这点。以太坊的优点是兼容并蓄,但相对来说,若是使用智能合约自行开发提供特定功能,使用者付出的成本(这里是 gas)会比其他原生链就支援此功能的成本高,而且若要新增 precompile 指令也不易维护。


此外,目前多个client 端同时开发的特性也是把双刃剑,一方面要维护各个client端之间的共识,测试一定要够完整,才不会因为代码 bug 问题而导致分叉。但多client同时刺激产生更多元的生态系,更多人在检验EIP可使协议更完备,且降低了 single client fault 的风险。鉴于此,整体而言我相信是利大于弊


大本营:作为以太坊核心开发者,在你看来以太坊的开发者最大的诉求有哪些?

Wang:主要有两个:扩容性和可用性

扩容性,是希望平台能支持高TPS且不堵车,这点由 Sharding 和Layer 2扩容解决方案,研发努力中。


可用性目前要能开发优秀的智能合约应用,必须要通彻地理解 EVM 才能彻底确定合约的安全性,这方面很多对于智能合约开发者的「陷阱」,希望有更好用的工具能降低门槛。



从3个阶段理解Sharding技术


大本营:你如何看待「Sharding会牺牲掉部分的去中心化特性」这一现象?除了Sharding之外,还有哪些适用于以太坊的「扩容」技术方案?

Wang:假设一开始有 1024 个 shard chains,虽然有投票权的验证节点(validators)会被随机取样去验证(attest)各个分片,即 Validator 无法自己选择为某个 shard chain 投票,但其他 full node 是可以选择只和某些 shard chain 同步,有可能一个特别火红的应用只在某一分片上有,导致有大分片和小分片的差异。


还有一点是成为 PoS 验证者的门槛,这方面已从 deprecated Casper EIP 1011 的1500 ETH 降为新 spec 上的 32 ETH。 除了 Sharding 以外,Layer 2 的扩容方案有像是 state channels、Plasma 等。


说到其他解决方案,今年值得注意的是 STARKs 在扩容上的应用研究更加深入,透过 STARKs 技术为链下的运算建立可快速验证的证明,它除了能作为 L2 扩容应用,在 Sharding 的研究上也有所帮助。


大本营:Vitalik曾说Sharding是一项长期的技术改进,这一改进大致会分为几个阶段,不同阶段以那些进展为特征?

Wang:我们现在处在的是「第零阶段」,即Beacon chain实践,这一阶段的前提是加入与 Casper 的整合。Beacon chain 会是 Casper FFG PoS 与 Sharding 的核心链,以协议提供健全的链上随机数生成机制,作为选出 shard chains 验证者的 seed,达到足够的安全性。


从长远的计划来说,Sharding也可以被划分为几个阶段。


第一阶段是,只有数据层的分片达到扩容,此时 shard chains 为PoS主链 (即 Beacon chain)的侧链。这时我们能做到类似「去中心化的Twitter」 之类的服务,但因为没有「transaction」的结构,Layer 1 应用有限,可能只能用 Layer 2 技术做复杂的应用。


第二阶段是,加上下一代状态执行引擎,例如 eWASM 能改善一些现有 EVM 的缺点;后续会再加上「跨分片交易」,目前这个实现有多种方案,但尚未达成定论。


最终的目标是,PoS主链(Beacon chain)与shard chain能有完整的 tightly-coupling,即如果主链区块关联到的分片区快是非法的,则这个主链区块也是非法的。


除此之外,社群的意见也很重要,相信这会在第一阶段测试链上线后更加清晰,我们也会因应实际状况修正路线。


大本营:你认为作为区块链开发者,最难的部分是什么?

Wang:是在「先求有再求好」和「设计到天衣无缝后再动工」这两件事上取得平衡。


一个是主链的大的升级只能靠硬分叉,如果没有在最初就精确地设计,硬分叉程序也会很丑很痛苦……甚至根本无从更新。比如说像是对目前 State Merkle Patricia Trie 的改进优化,如果要在已在主网上运行的链上大刀阔斧的改,想必是太刺激的事。


但另一方面,我们也亟欲了解社区用户对新设计的看法,况且纸上谈兵和现实世界还是有一段距离,因此,光是 Casper FFG family 上就有许多版本的 proof-of-concept。


现在的 Ethereum 2.0 也是,目前正一边完善设计一边开发中着。由于 shard chain 是全新的子链,我们有了重新设计基础协议的机会。正因为我们有信心 Ethereum 2.0 将会长远运行着,所以在初始阶段的设计决策很重要。


大本营:你认为目前从事以太坊或Sharding相关的开发者普遍存在的思想误区有哪些?

Wang:嗯,之前有看过有人觉得 Sharding 和 Layer 2 扩容方案是竞争关系,其实不然,Layer 1 和 Layer 2 方案可以互相学习,相辅相成。第二点,不是所有现在的应用加个「区块链」和「去中心化」就会变的好棒棒,很多时候是根本没有意义的,请不要这样!



女神和她的男神们


大本营:在区块链行业中,你比较欣赏的人有哪些?

Wang:啊,很多唷。


以太坊社群内的话,我觉得 Hudson Jameson 在维护小镇村的和平上功不可没,在这里谢谢 Hudson(鼓掌)。


640?wx_fmt=jpeg

还有 Python小组的leader——Piper Merriam,是能同时把很多事做得很好的人,很厉害(再鼓掌)。顺便一提 Ethereum Python client Trinity 虽然今年才推出,但 Ethereum 是比 Trinity Protocol 早用这个名字的!


640?wx_fmt=jpeg


此外,我觉得因为开源与全球化的趋势,任何人都有机会像某个十几岁开始写白皮书的那位一样成为社区、产业领袖,不过,愿意倾听他人接纳意见的人却不多,所以能够发广纳百川、不断学习的人我都很尊敬。


大本营:在个人技术提升方面,你通常会通过哪些渠道/方法进行自我提升?

Wang:我是ethresear.ch小编之一,这是 Ethereum 前沿研究的论坛。


640?wx_fmt=png

ethresear.ch作者页面


自己平常有订阅:

  • weekinethereum.com

  • ethfans.org

  • unitimes.media

  • zeroknowledge.fm


最后,也会看看

reddit /r/Buttcoin  哈哈。


大本营:请对我们的读者和以太坊开发者说几句寄语。

Wang:期待能看到更多以太坊上的应用,同时也希望更多开发者有兴趣投入底层链的研究!以太坊底层研发的技术领域很广,从协议设计、VM、密码学、经济学、博弈论、P2P网路、编程实作、合约语言……等等,相信你能够找到一个有兴趣的主题深入研究!


最新热文:

640?wx_fmt=jpeg


大力戳↑↑↑  加入区块链大本营读者⑦号群

(群满加微信 qk15732632926 入群)

(内容转载请联系微信:qk15732632926)

(商务合作请联系微信:fengyan-1101)


640?wx_fmt=jpeg

<think>好的,我现在需要解决用户提出的Visual Studio 2022中IntelliSense不显示成员函数的问题。首先,我得回忆一下自己之前遇到类似问题的经验,或者查阅相关资料。用户已经提供了一些引用,可能需要从中寻找线索。 首先,引用[1]提到调试工具帮助处理代码中的硬错误,但这里的问题可能与IntelliSense配置有关,而不是代码错误。引用[2]提到了GAC和gacutil工具,这可能与安装组件有关,但不确定是否直接相关。引用[3]是关于快捷键的,可能暂时用不上。 接下来,我应该按照常见解决方法逐步排查。首先想到的是IntelliSense缓存问题,可能需要清除缓存。Visual Studio有时会因为缓存损坏导致功能异常,所以第一步建议用户重置缓存。 然后,检查是否禁用了IntelliSense。用户可能不小心关闭了自动完成功能,需要确认设置中的选项是否开启。路径是工具→选项→文本编辑器→C/C++→高级,确保IntelliSense启用。 第三,检查项目配置。如果项目是C++/CLI或其他特殊类型,可能需要调整设置。比如,在C++项目中,确保使用正确的IntelliSense引擎,如“嫡传”引擎而非Tag Parser。 另外,扩展冲突也是一个常见原因。用户可能安装了第三方插件,导致与IntelliSense冲突。建议在安全模式下启动VS,禁用所有扩展,看问题是否解决。 此外,确保Visual Studio已更新到最新版本,安装所有累积更新可能修复已知问题。如果问题依旧,可能需要修复或重新安装VS。 还有,检查代码是否有语法错误。虽然引用[1]指出并非所有问题都是代码错误,但未闭合的括号或缺失的分号可能导致IntelliSense解析失败,从而无法显示成员函数。 最后,如果以上步骤无效,可能需要重置用户设置或删除.vs文件夹,重新生成解决方案,强制IntelliSense重新解析项目。 在组织回答时,需要分步骤说明,结构清晰,每个步骤包含操作方法和可能的原因。同时,生成相关问题帮助用户进一步排查其他可能性,比如性能优化或配置调整。</think>### Visual Studio 2022中IntelliSense不显示成员函数的解决方案 #### 1. 重置IntelliSense缓存 IntelliSense依赖本地缓存来提供代码提示。若缓存损坏,可能导致成员函数无法弹出。操作步骤: - 关闭Visual Studio - 删除以下目录: - `%AppData%\Microsoft\VisualStudio\17.0_xxxx\ComponentModelCache` - `%LocalAppData%\Microsoft\VisualStudio\17.0_xxxx\*.cache` - 重新启动VS并重新加载项目[^1] #### 2. 检查IntelliSense设置 确保相关功能未禁用: - 进入 **工具 → 选项 → 文本编辑器 → C/C++ → 高级** - 确认以下选项已启用: - `禁用IntelliSense` → `False` - `禁用自动更新` → `False` - 对于C++项目,检查 **IntelliSense引擎** 是否设置为`嫡传`(传统模式) #### 3. 验证项目配置 某些项目类型(如C++/CLI)需要特殊配置: - 右键项目 → **属性 → 配置属性 → 常规** - 检查`.NET目标框架版本`是否与代码兼容 - 确保`IntelliSense模式`设置为`适用于最新版本的MSVC` #### 4. 排除扩展冲突 第三方扩展可能干扰IntelliSense: - 通过命令行启动VS安全模式: ```bash devenv.exe /SafeMode ``` - 若问题消失,通过 **扩展 → 管理扩展** 逐一禁用插件排查 #### 5. 更新或修复Visual Studio 安装最新的累积更新: - 进入 **帮助 → 检查更新** - 若问题持续,通过Visual Studio Installer执行 **修复** 操作 #### 6. 检查代码语法 未闭合的代码块会导致IntelliSense解析中断: ```cpp class Example { public: void missing_semicolon() // 缺少分号会导致后续代码提示失效 int valid_function(); }; ``` #### 7. 重置用户数据 删除项目生成的临时文件: - 关闭VS后删除解决方案目录下的`.vs`文件夹 - 重新生成解决方案(快捷键 **Ctrl+Shift+B**) --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值