淘宝装修代码生成器,做一个网站要多少钱
目前网站建设技术虽然已经非常成熟,但是面对一堆堆源码、代码和安装解析、上线发布流程,很多没有学过专业知识的人,还是一头雾水。找人做网站是大多数人的选择,毕竟社会化分工越来越精细,没有必要样样精通,样样去学习,找专业的人做专业的事是大趋势。
淘宝装修代码生成器,做一个网站要多少钱?
目前网站建设技术虽然已经非常成熟,但是面对一堆堆源码、代码和安装解析、上线发布流程,很多没有学过专业知识的人,还是一头雾水。找人做网站是大多数人的选择,毕竟社会化分工越来越精细,没有必要样样精通,样样去学习,找专业的人做专业的事是大趋势。
那么找人做网站多少钱?太原鸣蝉公司给大家说说做网站价格明细。展示型、商城型网站建设以太原鸣蝉公司为例,做网站价格从1700~8500不等。网站基础版,有首页、关于我们、新闻资讯、产品中心、经典案例、联系我们等栏目,基本上就可以满足普通商家、企业的官方网站需求。
基础版拥有门店设置、在线客服、留言板、网站安全防护、网站验证、文件下载、企业地标、城市选择、访问统计、微信通知、会员管理、积分设置、多渠道登陆、网站评论、行业知道百科、优惠券、搜索优化、站内广告等功能。
电脑端网站制作、手机端网站制作、微信网站制作、服务器空间、域名和备案、技术支持等服务,一共1700元在行业内,鸣蝉品牌管理公司的报价属于亲民价,一般公司基础展示版网站,都在2500~3000的价格范围。
网站商城版,主要有在线交易支付功能的差别:
它在基础版上的功能,增加了电子商务、购物车、订单管理、在线支付、物流配送、发票管理、公司报价、会员商铺、批发、三级分销、会员商城、一元购、支付卡、消费全返、扫码支付、促销专题、限时购、微砍价、清仓购、团购、积分商城、拼团购、满减、优惠券等商城功能。
商城网站可以实现商家入驻、批发商入驻和会员多渠道登录在线支付购买功能,鸣蝉品牌管理公司的报价在5500~8500,根据一些功能增减来报价。
在建站公司行业内,商城网站一般在7000~9800左右,鸣蝉品牌管理公司,更注重新品牌的建设包装推广、互联网品牌塑造的综合管理上,所以在网站建设上,会最大程度进行让利。
从淘宝买的波司登雪中飞羽绒服为什么不给条形码?
1.条码贴在商品上不规格影响读取,如贴在有皱褶处、接缝不平外或者曲度超过30度的弧形面上。
2、条码受潮或破损。
3、手机里的条码读取软件未及时更新,对新加入物品编码中心的产品无法识别。建议使用国家物品编码中心提供的‘条码追溯’软件。
4、伪条码,一些不良商家资质不具备、或是产品标准不合格无法在质监部门备案,只有生成假条码应用,然后向一些条码读取软件公司交纳不等费用,让其加入数据库,这样就会出现一些产品只有特定的读取软件才能读出产品信息。
Java具体是做什么的?
Java的起源
Java源自Sun公司的一个叫Green的项目,其初始目的是为家用消费电子产品开发一个分布式代码系统,让人们可以通过这个技术,把E-mail发送给电冰箱、电视机等家用电器,并对家用电器进行控制或与它们进行信息交流。开始,Sun公司的技术人员准备采用C++来完成这个设想,但是C++太复杂,安全性差,使得技术人员不得不放弃直接使用C++。于是技术人员使用C++开发了一种新的语言Oak(Java的前身),Oak是一种用于网络的、精巧而安全的语言,Sun公司曾以此投标一个交互式电视项目,但是这个项目被SGI公司中标。可怜的Oak几乎就要“倒闭”了!恰巧Mark Ardreesen开发的Mosaic和NetScape启发了Oak项目组成员,项目组成员用Java编制了HotJava浏览器,得到了Sun公司首席执行官Scott McNealy的支持,并推动Java进军Internet。
Java的命名也是很有意思的,由于Oak这个名称无法注册商标,Oak小组的成员在讨论给这个语言起个新名字时,也正在咖啡馆喝着爪哇咖啡,这时,有人灵机一动说就叫它Java怎么样,大家都很认可这个想法,于是,Java这个名字就这样诞生了。
Java能做什么Java本身是一种语言,自然可以用来编写各种各样的应用,只不过由于该语言的特性,有些领域是它擅长的,有些领域则是它表现糟糕的地方。实际上,单纯从编程语言的角度来说,Java可以编写的应用是很丰富的,例如:
1、操作系统
开源的Java操作系统——jNode基于Java的嵌入式操作系统——SavaJe XE2、手持设备软件
手机游戏通讯录电话日历3、桌面应用
大名鼎鼎的开发平台——EclipseOralce推出的开发数据库应用的开发工具——JDeveloper4、Web应用
网上银行系统税务系统政务系统淘宝网Java操作系统估计很多人听都没听说过,这是因为这个领域并不是Java语言擅长的,所以即使有,也是很小众和不流行的。
相关概念在深入学习Java之前,有一些基本的概念需要掌握。掌握了这些概念,就可以从全局的角度更好地了解Java。
1、JDK
什么是JDK呢?JDK的全称是Java Develop Kit,即Java开发包(有时也称为Java SDK,Java软件开发包),JDK中包含了Java的类库、执行Java程序所需的运行环境,以及各种开发辅助工具。有了JDK我们就可以开发Java程序了。
2、Java家族的三个成员
在Java家族中,有三个成员:Java SE(Java Standard Edition)、Java EE(Java Enterprise Edition)和Java ME(Java Mobile Edition)。
提示:在Java 1.5及之前版本中,Sun公司使用了J2SE、J2EE,J2ME来命名这三个成员。
1)Java SE(Java Platform, Standard Edition)
Java SE是Java平台的标准版开发包,它包含了Java的核心类库,以及很多常用的工具类。初学者首先就是从Java SE入手开始学习Java开发,我们所说的JDK指的就是Java SE。
2)Java EE(Java Platform, Enterprise Edition)
Java EE是Java平台企业版本开发包,主要用于企业级应用软件的开发。目前有很多大型的应用,都是基于Java EE开发的。例如,某些电子商务网站和税务局的网上报税系统,就是基于Java EE开发的。
3)Java ME(Java Platform, Micro Edition)
Java ME主要应用于手持设备(如手机、平板电脑等)应用的开发。在还没有Android的时候,基于Java ME开发手机应用也是相当流行的,而现在,Java ME已日落西山。
3、Java 1、Java 2和Java 5
Java 1、Java 2和Java 5都是Java语言的版本。1998年12月,Sun公司发布了Java语言的1.2版本,开始使用“Java 2”这一名称,从Java 1.2到Java 1.4,在这3个主要的版本中,Java语言在基本语法和功能特性上没有什么大的变化,所以它们被统称为Java 2。在那个阶段,我们经常会看到J2SE、J2EE和J2ME的叫法。
2004年9月30日,Sun公司发布了JDK 1.5版本,这个版本的Java有了很大的改进,它加入了泛型、枚举、注解等新特性,使得Java编程更加方便。为了纪念这次重大的革新,Sun公司不再延续之前使用的1.x版本号,而是直接将版本改为了5.0,相当于一个里程碑似的版本发布。所以在这一阶段,你会看到Java 5、J2SE 5.0、JDK 5.0、JDK 1.5等叫法。从JDK 1.6开始,Sun公司又“突发奇想”,再次将Java的版本改名,将J2SE改名为Java SE,将J2EE改名为Java EE,将J2ME改名为Java ME,也就是去掉了中间那个使用了很长时间的标识版本的2。这更加剧了Java版本称呼上的混乱,所以在这一阶段Java的叫法可以说是“千奇百怪”,对在那时进入Java领域的新手造成了一些混乱,而对于Java“老司机”来说,很清楚地知道J2SE就是Java SE,J2SE 1.6就是Java SE 6.0,JDK 1.6就是JDK 6.0。
经过这么多年的发展,Java家族各个成员和版本之间的称呼也逐渐统一了起来,都开始使用Java SE 8、Java EE 6、JDK 8.x(或者JDK 1.8.x)这种规范的命名了。
4、JRE
JRE的英文全称是Java Runtime Environment,即Java运行环境,是运行Java程序所必需的。
当我们编写Java程序时,需要安装JDK,因为在该开发包中有我们开发要用到的各种工具,如编译工具、文档生成工具、打包工具等,而在运行Java程序时,我们只需要有一个运行环境即可,也就是JRE。在下载的JDK中默认就有JRE,如果我们只是要运行Java程序,那么也可以单独下载JRE。
提示:2010年10月24日,Sun公司被美国数据软件巨头甲骨文(ORACLE)公司收购了,因此Java现在是甲骨文公司的了。
提示:JDK 11已经不再提供单独的JRE下载服务。
我是专注于软件开发和IT教育的孙鑫老师,喜欢我的文章欢迎转发、评论、关注、点赞和收藏,我会经常与大家分享IT技术、编程语言的文章和教学视频。目前已发布完整的《Vue.js从入门到实战》教学视频,正在发布《Java无难事》教学视频。
目前我的一本新书《Java无难事》刚上市,这本书可以让Java的爱好者学习Java再无难事。
《Java无难事》一书基本涵盖了你未来从事Java领域开发所需要了解和掌握的Java SE的所有知识,也涵盖了Java 5到Java 11的新特性。本书通俗易懂、实例丰富、深入浅出,让你轻松掌握Java SE的核心内容。每章还附带了贴近实战的练习题,让你巩固所学的知识。同时本书附赠了教学视频,视频并不是书中内容的重复,而是对本书内容有力的补充和完善。
最最重要的是,本书还可以防身!!!本书各大网点均有销售,买不了吃亏,买不了上当。
Java无难事刚开的淘宝店铺怎样装修?
1、打开淘宝网页,登陆淘宝,进入卖家中心,点击操作界面左侧的“店铺管理”,然后进入“店铺装修”页面。
进入装修页面,你可以看到很多模块,每个模块都可以自主地进行编辑,也可以删除模块,或者添加自定义模块。
首先,你需要做的就是制作店招,店招位于店铺的顶端,重要性不言而喻。对于店招图片,你可以事先在网上下载一个模板,填好标题,生成图片,并保存。在装修页面选中店招的部分,单击“编辑”,上传已经制作好的图片,上传完毕,单击“保存”。
2、接着是店铺的页面布局。你需要确定一个模板风格,模板风格可以选择淘宝自带免费的,如果想要个性一点的话,可以去装修市场付费购买。模块确定后,再点击“布局管理”,一些布局单元可以随意调换位置,另外,你还可以选择性添加布局单元。
然后就进入自定义编辑阶段了,具体而言,就是指店铺产品的分类管理和装修,这是淘宝店铺装修过程中的重头戏。
在自定义内容区,点击“编辑”,再点击“源码”图标,在百度上搜索“免费淘宝模板代码”,把代码复制粘贴到相应的区域,接着就是要在模板上添加宝贝的图片和信息了。
怎么解释才能让老百姓都能明白?
先说结论:“中本聪”利用区块链技术,巧妙地解决了账本同步和信息不重复的问题,这就使得去中心化账本的理想最终得以实现。
去中心化的理想(理解区块链的前提)
区块链原本是一种基于互联网的信息编码、传输、加密、解密、验证技术,但在我看来,现在已经上升到了一种“去中心化”的理念,本质上是一种理念上的革新。而比特币就是这种理念的一个具体应用。打个比方来说,区块链就相当于电子商务,你想想二十年前,有几个人搞得懂什么是电子商务,它本质上也是一种理念,只不过这种理念必须要借助一定的技术手段来实现。而比特币就相当于淘宝网,是电子商务的一个具体应用。
所以,我们要理解什么是区块链,必须要先理解什么是“去中心化”。
我举两个例子来帮助你理解:
第一个例子是从网上下载电影。最早的时候,我们下载电影都是到一些知名的电影下载网站上去下载。这些网站会把电影文件存放在一台或者一组服务器上,大家都访问某台服务器下载影片。这就叫中心化。
在这个游戏规则中,电影网站的服务器就是中心,每一个下载电影的人只不过是这个中心拉出来的线而已。中心化的游戏中,玩家的地位是不平等的,网站主占据绝对强势地位,他想让你下载就下载,想给你限速就限速。后来,一种去中心化的下载模式出现了,这就是 BT 下载,也叫 P2P(peer to peer)下载,现在我们一般讲到 P2P 指的都是那种个人借贷的网站,但是最初的概念是从 BT 下载来的,P2P 就是个人到个人,点到点。
BT 下载的原理与电影网站完全不同,影片并不是存在某个服务器上的,而是大家互相从网络上的每一个人那里去下载这个影片的一小部分,最后拼成一个完整的文件。在这个游戏中,所有玩家的地位是完全平等的,任何一个玩家可以随时离场、随时加入,只要这个游戏还有人在玩,整个游戏就能够正常运行,没有人拥有特别的权力。这就叫去中心化。
第二个例子就是我们每天都在使用的银行卡或者支付宝这些人民币支付手段,现金我们先抛开不谈。我们用无现金的方式支付人民币买东西,就是一个中心化的游戏,它的中心有好多级,比如说,支付宝的服务器是第一级中心,支付宝资金的托管银行工商银行、中信银行的服务器就是第二级中心,这些银行的再上一级中心就是央行人民银行的服务器。
在这个游戏中,不同级别玩家的权力、地位是不平等的,最大的 Boss 当然是央行,它甚至能发行货币,它的权力可以大到分分钟就把我们的钱全部抢光,很简单,它只要突然增发货币就可以了,物价突然上涨 100 倍,我们的钱就等于被抢光了。
那货币游戏能不能像下载一样也去中心化呢?也是可以的,比特币系统就是这样一个去中心化的货币游戏系统,你可以把它看成是一个大型的货币实验。
比特币的游戏规则是这么玩儿的,就两条核心规则。
第一,它的货币发行不是由某个机构说了算,而是公开一套算法,每算出一个符合要求的数字,就相当于挖到了若干个比特币。谁都可以去算,绝对公平,谁也做不了弊,因为算法本质上就是一个个数字去凑,凑出一个算一个。
第二,比特币的交易信息不是记在某一台服务器上的,而是所有参与这个游戏的玩家电脑中一人一份,同步记录,这种交易记录在理论上几乎是无法篡改的。这就是去中心化账本。这样一来,所有游戏玩家的地位和权力就完全平等了,几乎没有任何一个玩家是特殊的。为什么要加上“几乎”两个字呢,因为,毕竟能够有能力挖比特币的那些矿主还是有点特殊的,但这种特殊性并不是太大,而且矿主也没有任何壁垒,只要你买得起好电脑,谁都可以当矿主。
不得不说,比特币的这个设计非常之妙,妙不可言,他的发明人,神秘的“中本聪”确实是颗大葱。
理解了去中心化,你就等于理解了区块链,一个真正的区块链项目就是通过合理的游戏规则设计辅以信息技术,来践行去中心化理念的项目。比特币系统就是去中心化理念和区块链技术的一个优秀示范项目。不夸张地说,我觉得这是一场互联网的理念革命,是人类的又一次平等化革命,上一次是打破了人与人之间在身份地位上的不平等,这一次是打破了游戏规则本身的不平等。正因为这样,所以区块链才能激发人们如此大的热情,这是一个听上去可以颠覆一切旧规则的新生事物。
然而,我这里话锋一转,在我看来,比特币系统并不是一个成功的区块链应用,它是一个天生的残废。我为什么这么说呢?因为,从我前面介绍的比特币两条核心游戏规则就知道,它有以下这些天生的缺陷:
第一, 比特币客户端软件需要巨大无比的存储空间,因为每一个节点都必须要记录下从比特币系统诞生的第一天起所有的交易记录,截止 2018 年 2 月,这个交易记录文件已经有 147 GB 那么大了,而且只会增加不会减少。
第二, 为了防止有人作弊,比特币系统有一套很复杂的游戏规则来确保交易记录是真实的,这样就导致每一笔交易的确认时间一般需要一个小时,甚至几天。你想想吧,如果用比特币去街边买杯奶茶,会是什么情况。
第三, 最多只有 2100 万枚比特币,而且,无论有多少人在挖矿,系统规则决定了平均每 10 分钟才能产出若干枚比特币(2018年是 12.5 枚)。我想起了那句话:人民群众日益增长的比特币需求与比特币总量不充分之间的矛盾。
但是,比特币不能代表区块链,区块链也不是比特币。区块链在未来可以有哪些应用呢?
实际上,区块链解决的核心问题是信任问题,大家想一下,所有的金融机构,例如银行、保险、劵商等等,让他们赖以生存的根本是信用。我们之所以会放心地买股票、买期货、买纸黄金,那都是因为我们信任充当交易中介的机构,而这些交易中介就是金融活动的中心,我们宁愿为此付出一定的手续费、交易费,金融机构也因此挣得盆满钵满。
但是,当区块链在人们的观念上和技术上都成熟后,这种中心化的金融机构是有可能被颠覆掉的,因为我们可以利用区块链的理念和技术来改写游戏规则,让所有的金融产品交易都不再需要一个中心,而全部都以点对点的方式完成,并且从理论上能够保证信用问题。到了那时,银行还需不需要我不知道,因为银行可能还会涉及到更复杂的国家利益问题。但是,一定会有很多商业金融机构受到区块链的冲击。再比如,公证也是一个典型的中心化的贩卖信用的机构,区块链完全可以实现对公证行业的改写。
更新:
首先,请记住:比特币不是区块链,它只是区块链技术的一个具体应用。好,我们接下来往下说。
到此为止,我们去中心化账本的理想只实现了一半,并没完全实现,为什么呢?因为还有两个重大的问题没有解决:
第一个问题:账本同步问题。比特币网络中有那么多台电脑,一条交易信息发送出来的时候,当然不可能所有的电脑都开机,必然有一些处于离线状态,开了电脑也未必开着比特币客户端,所以总有一些电脑无法立刻收到这条信息。这样就会导致不同电脑上的记录不同步,到底以谁的电脑记录为准呢?
第二个问题:如何防止同一个比特币被重复使用呢?假如有一个黑客,他只有 1 个比特币,但是他却同时把这个比特币付给 A 和 B(虽然理论上无法真正的同时,但可以做到间隔时间极短),于是他就会在网络上广播两条信息,一条是支付给 A 的信息,一条是支付给 B 的信息,因为网速的关系,必然有的电脑先收到了信息 1,有的电脑先收到了信息 2,这就产生了矛盾,如何确定哪一条信息是有效的呢?
为了解决上面这两个难题,“区块链”技术横空出世——真正让中本聪一战成名的技术。
再次强调:比特币不是区块链,它只是区块链技术的一个具体应用。
接下来,让我一步步为你揭开区块链技术的面纱。
为什么要叫“区块链”?
因为中本聪把这个账本设计成了由一个个“信息包”首尾相连而成的长链,每一个“信息包”被称为一个“区块”,这些区块每一个都有唯一的编号(在比特币系统中,编号被称为高度(height)),这些编号就是自然数 1、2、3、4……一直往下排,不允许跳跃,也不允许中断和重复。
下面讲解区块的具体规则:
第一个区块当然是由区块链的发明人“中本聪”亲自创建的,那是北京时间 2009 年 1 月 4 日,在芬兰赫尔辛基的一台小型服务器上,第一个区块诞生了,这也被称作“创世区块”。在这个区块上,包含的主要信息是:
创世区块
中间那段话是“中本聪”刻在第一个区块上的纪念,从第 2 个区块开始,以后每一个区块都必须严格按照比特币系统的规则来创建。区块的规则是:
区块规则
区块链所有的奥妙就在尾巴上加的这个随机数上,因为它实在太奥妙,让我等凡夫俗子只能大呼过瘾,所以后面我就把它称为“奥数”,以方便讲解。
“中本聪”规定:这个新区块的数字指纹(一个 256 位的二进制数)的前 72 位必须全部为 0 。
回忆一下我们前面介绍过的数字指纹的知识。因为 SHA 算出来的指纹是毫无规律可循的一个数字,所以,想要满足“中本聪”的这个变态规定,唯一的办法就只能凭运气凑“奥数”,从 0 开始不断地去常试,直到满足要求为止。这就是一个纯粹的概率问题。我们来算一下要满足这个要求的概率是多大。
因为二进制数,每一位只有两种可能性,0 或者 1,所以,凑出一个奥数的可能性是 2 的 72 次方分之一,也就是 1 / 4722366482869645213696。这个数字已经大到看花眼了吧,它大约就是 4.7 万亿亿分之一。换句话说呢,就是平均要进行 4.7 万亿亿次 SHA 计算,才可能得到一个“奥数”,你可见每一个“奥数”的金贵。
最巧妙的是,“奥数”并不是某一个方程的解,解出一个少一个,因为每一个区块的字符串都不同,所以,每一次寻找奥数都需要从 0 开始,任何一个数字都有可能成为新的奥数,完全没有规律可循。
一旦成功找到了一个奥数,就获得了一次记账权力,可以给账本上新增加一个区块。那么,为什么要花时间找奥数,去给账本记账呢?因为好处实在太大了。
比特币系统规定,每成功增加一个区块,这台记账的电脑(实际上是某个账号)就能获得 12.5 个比特币的奖励(截止到 2018 年 2 月时的奖金额),以及这个区块中所有交易的手续费,总额取决于交易频繁程度(平均约 2 比特币)。这样一来,相当于每找到一个奥数,可以获得 14.5 个比特币奖励,按照 2018 年 2 月的比特币市场价,相当于12 万美元。这么丰厚的奖励,自然就会吸引大量的电脑愿意去抢夺记账权。
寻找奥数就是抢记账权,抢记账权也就是挖比特币。因此,寻找奥数也被形象地称为“挖矿”。挖矿的电脑就叫“矿机”,一个装满矿机的房间当然就可以叫“矿厂”了嘛,矿厂的主人就是“矿主”,他们是比特币江湖中的弄潮儿。
但是,我需要给你解释一下挖矿的难度,让你打消去挖矿的冲动。个人电脑的运算速度大约是每秒可以进行 60 万次 SHA 计算,也就意味着,一台个人电脑需要花一千万年才有可能凑出一个奥数。当然,这是一种概率计算,我不能从理论上排除某人的人品超新星爆发,算了一次奥数就中了 4 万亿亿分之一概率的奖。但我还是想劝你不要相信自己是耶稣转世,你没有那个命。
我给你看看人家专业的矿厂是怎样的:
图: 一个中等规模矿厂(图片来源:百度图片搜索)
这只是一个中等规模的矿厂,大规模的矿厂据说有几万甚至几十万台矿机同时运行。我在《看看新闻》 2017 年 6 月 17 日的一个新闻中看到,记者拜访了一座位于中国四川的矿厂,根据报道:这个矿厂有 5000 多台矿机的规模,平均每天耗电超过 20 万度,当地的电价是 3 毛/度,一天光是电费就 6 万多元,平均每天可以挖出大约 50 个比特币,一年左右回本,之后能做到 20% 左右的利润。
不过我觉得这个报道中的数据前后矛盾,我查了一下,比特币当时的市场价是大约 2500 美金/个,美元兑人民币的汇率大约是 6.8 ,所以,每天的收入大约是 85 万人民币,一年的收入大约 3.1亿元,一台矿机的成本均价是 1 - 2 万元, 矿厂的矿机总成本是 5000 万- 1 亿元,再算上电费等,一年起码 2 亿的利润。我想,在充分市场竞争下,出现这种暴利的可能性很低。所以,不是记者搞错了,就是被采访对象在吹牛不打草稿。由于比特币的价格和全网算力的波动很大,所以投资比特币矿厂很难做长期预测,不确定因素太多。
图:看看新闻报道的位于四川的某矿厂(图片来源:《看看新闻》官网)
根据我们前面掌握的比特币知识,50 个比特币,相当于找到了 4 个奥数,抢到了 4 次记账权。目前,整个比特币网络的所有矿机加起来的总算力能达到的水平,大约平均每 10 分钟可以找到一个奥数,也就意味着平均每 10 分钟生成一个新的区块。当然,这个 10 分钟是一个平均数,快一点的话 3、4 分钟生成一个区块,慢一点的话 15 分钟左右。
正因为奥数太难找,每个区块平均要 10 分钟才能生成一个,所以就能基本解决我在本章开头提出的第一个问题“如何同步账本?”,只要有个 3、4 分钟的时间,足以让所有在线的电脑同步到这个区块了,那些不在线的电脑或者第一次运行客户端的电脑,上线以后必须要先做一件事情,就是从相邻的节点上获取最新的账本。
请注意,我用了“基本解决”这个词,也就意味着,并没有完全解决账本同步的问题。这是因为总会有极小的概率两台矿机恰好同时(只要在网络上所有在线的节点没有完成区块链同步之前都可以算同时)找到奥数,也就意味着同时抢到了记账权。因为矿机实在太多了,这样的小概率事件时不时也会发生一次。同时抢到记账权的矿机都会将自己生成的新区块广播到比特币网络中。
遇到这种情况,比特币系统怎么处理呢?
在这种情况下,相当于网络上的其他节点收到了两个合法的新区块,因为网络节点的地域分布不同,所以,不同的节点收到这两个新区块的先后次序就会不同。此时,所有的节点会暂时保留两个新区块,并且把区块链做一个临时的分叉,如下图所示:
(图片来源:自绘)
接下去,比特币网络中必然又会有其中一个节点(矿机)抢到了记账权,这时该节点就会将生成的最新区块接到其中的一个分支上,那到底是接到新区块 1 上还是 2 上呢?系统规则是:这个节点先收到哪个区块,就接到哪个区块上,同时放弃另一个区块,然后全网广播,如下图所示:
(图片来源:自绘)
比特币网络上的所有节点在收到最新的区块链后,只要发现其中一个分支比另外一个分支多 2 个区块了,就立即也放弃那个短的分支,总之,比特币网络永远只承认更长的那条分支。你可能会想,那如果小概率事件再次发生,在区块链第一次分叉后,又同时产生了两个新区块,而恰好两个新区块产生在两个不同的分支上,这时候,其他节点收到的区块链还是两个一样长的分支,那怎么办?很好办。还是同样的规则,只要分支一样长就暂时保留,直到出现两个分支不一样长时,就放弃短于 2 个区块的,保留长的。那个被放弃的分支中所有交易和比特币奖励都会被判定为无效。
因为有了这个临时分叉的规则,所以,比特币玩家在完成一笔交易后,不能立即认为这笔交易是成功的,有可能会被取消,必须要等到一定数量的新区块生成后,如果交易依然没有被取消,这才能放心地认为交易成功了。那到底要等到多少个新区块产生才能放心呢?按照概率来说的话,小额交易有这么三个新区块产生就够了,但是大额交易的话,为了更保险,一般认为是等到 6 个新区块产生,就足以放心了。前面说过,每个区块产生的平均时间是 10 分钟,也就意味着,一笔大额交易需要 1 个小时左右才能确认交易成功。
但是小额交易确认的时间往往会更长,甚至长达好几天。听到这个你可能会有点儿糊涂,刚才不是还说小额交易一般只要三个新区块产生就够了吗?怎么确认时间反而会更长呢?比特币网络刚刚诞生的头几年,确实不会出现这样的怪事,但是这几年随着交易量的猛增,就会出现这种怪事了。
为什么?先回忆一下每个区块的规则:
区块规则
你的交易记录要被写到区块链上,有一个前提:矿工将你的这笔交易记录打包到这个区块上。你可能想问:为什么会不打包?难道系统规则还允许不打包吗?打包成功了不是还要给矿工交税吗?矿工好不容易抢到一次记账权,怎么会有钱不赚呢?
是的,允许不打包。原因不是矿工不想赚钱,而是“不可抗力”,关键问题是每一个区块允许存储的数据量有限。中本聪当初设计比特币系统时,规定了每一个区块最大只能是 1MB,一条交易记录大概是 0.25K,那么一个区块最多可以储存 4000 多条交易记录,如果在一个新区块产生的时段中,发生的交易请求超过了 4000 条,那就肯定存不下了。我们可以算算,这个量大概是一个怎样的交易频率。每个区块的平均产生时间是 10 分钟,也就意味着,平均每秒钟的交易量如果超过 7 条,那么就一定会出现排队等待打包的交易记录了。这个交易频率实在很低,要知道支付宝一秒钟大约要处理上万笔交易。这一秒钟七笔交易对于全球来说,实在是太不够用了。
一般来说,大额交易优先打包,小额交易,手续费越高的交易越优先打包,打包规则矿工有一定的自主权。比特币交易手续费的规则比较复杂,不同的矿工收得还不一样,不是三言两语能说清。但有一点可能会让你感到诧异,越是大额的交易反而收费越低,甚至免费。交易额越小反而费率越高。这是因为,交易手续费除了鼓励矿工挖矿,还有一个非常重要的功能,就是防止有人恶意发布大量的小额交易造成信息拥堵。
现在,比特币交易滞留是非常普遍的现象,很多小额交易甚至等上好几天都确认不了,因此,很多人不惜附加很高的交易手续费来让矿工提前替他们打包。
好了,讲到这里,有关区块链的核心原理就讲完了,关键要记住,“中本聪”利用区块链技术,巧妙地解决了账本同步和信息不重复的问题,这就使得去中心化账本的理想最终得以实现。
学习知识,我认为最佳的方式就是带着问题学习,在学习过程中,先掌握知识的主干,如果还有兴趣,再去了解那些枝枝杈杈。
发布于 2024-04-12 20:44:01