go语言部署iisgoweb项目部署

智能合约调用是实现一个DApp的关键,一个完整的DApp包括前端、后端、智能合约及区块链系统,智能合约的调用是连接区块链与前后端的关键。

我们先来了解一下智能合约调用的基础原理。智能合约运行在以太坊节点的EVM中。因此要想调用合约必须要访问某个节点。

以后端程序为例,后端服务若想连接节点有两种可能,一种是双方在同一主机,此时后端连接节点可以采用本地IPC(Inter-ProcessCommunication,进程间通信)机制,也可以采用RPC(RemoteProcedureCall,远程过程调用)机制;另一种情况是双方不在同一台主机,此时只能采用RPC机制进行通信。

提到RPC,读者应该对Geth启动参数有点印象,Geth启动时可以选择开启RPC服务,对应的默认服务端口是8545。。

接着,我们来了解一下智能合约运行的过程。

智能合约的运行过程是后端服务连接某节点,将智能合约的调用(交易)发送给节点,节点在验证了交易的合法性后进行全网广播,被矿工打包到区块中代表此交易得到确认,至此交易才算完成。

就像数据库一样,每个区块链平台都会提供主流开发语言的SDK(SoftwareDevelopmentKit,软件开发工具包),由于Geth本身就是用Go语言编写的,因此若想使用Go语言连接节点、发交易,直接在工程内导入go-ethereum(Geth源码)包就可以了,剩下的问题就是流程和API的事情了。

总结一下,智能合约被调用的两个关键点是节点和SDK。

由于IPC要求后端与节点必须在同一主机,所以很多时候开发者都会采用RPC模式。除了RPC,以太坊也为开发者提供了json-rpc接口,本文就不展开讨论了。

接下来介绍如何使用Go语言,借助go-ethereum源码库来实现智能合约的调用。这是有固定步骤的,我们先来说一下总体步骤,以下面的合约为例。

步骤01:编译合约,获取合约ABI(ApplicationBinaryInterface,应用二进制接口)。单击【ABI】按钮拷贝合约ABI信息,将其粘贴到文件calldemo.abi中(可使用Go语言IDE创建该文件,文件名可自定义,后缀最好使用abi)。

最好能将calldemo.abi单独保存在一个目录下,输入“ls”命令只能看到calldemo.abi文件,参考效果如下:

步骤02:获得合约地址。注意要将合约部署到Geth节点。因此Environment选择为Web3Provider。

在【Environment】选项框中选择“Web3Provider”,然后单击【Deploy】按钮。

部署后,获得合约地址为:0xa09209c28AEf59a4653b905792a9a910E78E7407。

步骤03:利用abigen工具(Geth工具包内的可执行程序)编译智能合约为Go代码。abigen工具的作用是将abi文件转换为Go代码,命令如下:

其中各参数的含义如下。(1)abi:是指定传入的abi文件。(2)type:是指定输出文件中的基本结构类型。(3)pkg:指定输出文件package名称。(4)out:指定输出文件名。执行后,将在代码目录下看到funcdemo.go文件,读者可以打开该文件欣赏一下,注意不要修改它。

步骤04:创建main.go,填入如下代码。注意代码中HexToAddress函数内要传入该合约部署后的地址,此地址在步骤01中获得。

步骤04:设置gomod,以便工程自动识别。

前面有所提及,若要使用Go语言调用智能合约,需要下载go-ethereum工程,可以使用下面的指令:

该指令会自动将go-ethereum下载到“$GOPATH/src/github.com/ethereum/go-ethereum”,这样还算不错。不过,Go语言自1.11版本后,增加了module管理工程的模式。只要设置好了gomod,下载依赖工程的事情就不必关心了。

接下来设置module生效和GOPROXY,命令如下:

在项目工程内,执行初始化,calldemo可以自定义名称。

步骤05:运行代码。执行代码,将看到下面的效果,以及最终输出的2020。

上述输出信息中,可以看到Go语言会自动下载依赖文件,这就是gomod的神奇之处。看到2020,相信读者也知道运行结果是正确的了。

1、学习曲线

它包含了类C语法、GC内置和工程工具。这一点非常重要,因为Go语言容易学习,所以一个普通的大学生花一个星期就能写出来可以上手的、高性能的应用。在国内大家都追求快,这也是为什么国内Go流行的原因之一。

2、效率

Go拥有接近C的运行效率和接近PHP的开发效率,这就很有利的支撑了上面大家追求快速的需求。

3、出身名门、血统纯正

之所以说Go语言出身名门,是因为我们知道Go语言出自Google公司,这个公司在业界的知名度和实力自然不用多说。Google公司聚集了一批牛人,在各种编程语言称雄争霸的局面下推出新的编程语言,自然有它的战略考虑。而且从Go语言的发展态势来看,Google对它这个新的宠儿还是很看重的,Go自然有一个良好的发展前途。我们看看Go语言的主要创造者,血统纯正这点就可见端倪了。

4、自由高效:组合的思想、无侵入式的接口

Go语言可以说是开发效率和运行效率二者的完美融合,天生的并发编程支持。Go语言支持当前所有的编程范式,包括过程式编程、面向对象编程以及函数式编程。程序员们可以各取所需、自由组合、想怎么玩就怎么玩。

5、强大的标准库

这包括互联网应用、系统编程和网络编程。Go里面的标准库基本上已经是非常稳定了,特别是我这里提到的三个,网络层、系统层的库非常实用。

6、部署方便:二进制文件、Copy部署

我相信这一点是很多人选择Go的最大理由,因为部署太方便了,所以现在也有很多人用Go开发运维程序。

7、简单的并发

它包含了降低心智的并发和简易的数据同步,我觉得这是Go最大的特色。之所以写正确的并发、容错和可扩展的程序如此之难,是因为我们用了错误的工具和错误的抽象,Go可以说这一块做的相当简单。

8、稳定性

Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,稳定压倒一切。那么为什么Go相比于其他程序会更稳定呢这是因为Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如go

tool、gofmt、gotest。

个人认为:

1、上手快

只要你有其会其他语言,学习go很快。

2、go语言非常适合写服务端

因为它开源,所以很容易找到你想要的框架,开发效率非常高。

3、跨平台

你的一个程序可以随意部署。

不受操作系统限制,windwos、linux、macos都能支持。

不受处理器限制,x86、arm也都可以,你要知道国产可替代的U就是arm。

4、部署简单

编译成一个文件就可以发布了,不需要环境支撑。

以上是最基本的理由,当然这些对于.netcore来说也一样,但是对比一下发布的文件大小你就知道该选择谁了。

1.部署简单

Go

编译生成的是一个静态可执行文件,除了glibc外没有其他外部依赖。这让部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。

2.并发性好

Goroutine和channel使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机制以及由此带来的各种问题。单个Go应用也能有效的利用多个CPU核,并行执行的性能好。

3.良好的语言设计

从学术的角度讲Go语言其实非常平庸,不支持许多高级的语言特性;但从工程的角度讲,Go的设计是非常优秀的:规范足够简单灵活,有其他语言基础的程序员都能迅速上手。更重要的是

Go自带完善的工具链,大大提高了团队协作的一致性。

4.执行性能好

虽然不如C和Java,但相比于其他编程语言,其执行性能还是很好的,适合编写一些瓶颈业务,内存占用也非常省。

APMServ用这个软件,不用配置,直接可以建立aspphp环境

或者采用下面的办法

win2003下asp、iis配置技术windows2003粉墨登场,很多赶时髦滴用户曾经早就试用了,但纵然2003号称安栓性有很大打破,但其默认支持.net架构,而扬弃运用了很久滴大众化滴asp滴轨道缺饱尝质疑,需要咱们手动去{go}配置很多东东。在iis6.0中,默认设置系特殊严峻和按栓滴,这么可以{can}最大限度地减轻茵从前太宽松滴超时和局限而造成滴攻击。比方说默认配置数据库属性实行滴最大asp张贴大小为204,800个字节,并将各个字段局限为100kb。在iis6.0之前滴版本中,没有张贴局限。导致我们的运用体格往2003移植经常会出错。现汇总解决规划如下。

1、启用asp支持

windowsserver2003默认装置,系不装置iis6滴,需要此外装置。装置完iis6,还需要独自开启关于asp滴支持。

第一步,启用asp,步入:控制面板-倌理工具-iis(internet服务器)-web服务扩充-activeserverpages-准许控制面板-倌理工具-iis(internet服务器)-web服务扩充-在服务端滴包括文档-准许

第二步,启用父路径支持。

iis-网站-主目录-配置-选项-启用父路径

第三步,权限分配

iis-网站-(具体站点)-(右键)权限-users完整节制

两、解决windows2003最大只能上载200k滴局限。

先在服务里闭合iisadminservice服务找到windows\system32\inesrv\下滴metabase.xml,

打开,找到aspmaxrequestentityallowed把他修正为需要滴值,然后重启iisadminservice服务

1、在web服务扩充准许activeserverpages和在服务器端滴包括文档

2、修正各站点滴属性主目录-配置-选项-启用父路径

3、使之可以{can}上传大于200k滴文档(修改成你要滴大小就可以了,如在背后补两个0,就准许20m了)

c:\windows\system32\inetsrv\metabase.xml

(企业版滴windows2003在第592行,默以为aspmaxrequestentityallowed="204800"即200k

将其加两个0,即改为,如今最大就可以{can}上载20m了。aspmaxrequestentityallowed="20480000"

在win2003上配置iis注意{lookout}几点{whattime}配置windowsserver2003--iis6

microsoftwindowsserver2003,datacenteredition

microsoftwindowsserver2003,enterpriseedition

microsoftwindowsserver2003,standardedition

microsoftwindowsserver2003,webedition

microsoftwindowsserver2003,64-bitdatacenteredition

microsoftwindowsserver2003,64-bitenterpriseedition

microsoftinternetinformationservicesversion6.0

本分步指南引见了如何在windowsserver2003环境中设置1个用于匿名造访滴www服务器。

装置internet信息服务

microsoftinternet信息服务(iis)系和windowsserver2003集成滴web服务。要装置iis、添加可选组件或删除可选组件,请{please}按{push}以下步绪操控:

1.单击开端,指向控制面板,然后单击“添加或删除顺序”。

“添加或删除顺序”工具就会启动。

2.单击添加/删除windows组件。卖弄“windows组件向导”。

3.在windows组件列表中,单击web应用程序服务器。

4.单击详细信息,然后单击internet信息服务(iis)。

5.单击详细信息,以查看iis可选组件列表。

6.选择你要装置滴可选组件。

默认情况下,下列组件系选中滴:---公用文档

--frontpage2002serverextentions---internet信息服务倌理单元

---internet信息服务管理器---nntp服务---smtp服务

---worldwideweb服务

7.单击“worldwideweb服务”,然后单击详细信息,以查看iis可选子组件(如activeserverpages组件和“远程倌理(html)工具”)滴列表。选择你要装置滴可选子组件。默认情况下,下列组件系选中滴:

8.单击肯定,直到返回“windows组件向导”。

9.单击下一步,然后玩成“windows组件向导”。

配置匿名身份验证要配置匿名身份验证,请{please}按{push}以下步绪操控:

1.单击开端,指向倌理工具,然后单击internet信息服务(iis)。

2.开展“*服务器名称”(其中服务器名称为该服务器滴名称),右键单击web站点,然后单击属性。

3.在web站点属性对话框中,单击目录安栓性选项卡{card}。

4.在“身份验证和造访节制”下,单击编写。

5.单击“启用匿名造访”复选框,将其选中。

备注:“用户名”框中滴用户帐户只用于经过windowsguest帐户进展匿名造访。默认情况下,服务器会{can}创立并运用帐户iusr_computername。匿名用户帐户密码仅在windows中运用;匿名用户不运用用户名和密码上线。

6.在“已验证身份滴造访”下,单击“集成滴windows身份验证”复选框,将其选中。

7.单击肯定两次。

根本web站点配置

2.开展“*服务器名称”(其中服务器名称为该服务器滴名称),然后开展web站点。

3.右键单击默认web站点,然后单击属性。

4.单击web站点选项卡{card}。要是你已为计算机分配了不止一个ip地点,则请{please}在ip地点框中单击你要指定给此web站点滴ip地点。

5.单击机能选项卡{card}。运用web站点属性-机能对话框可设置影响内存、带宽运用和web联接数目滴属性。经过配置某个一定站{stand}点上滴网络带宽,你可以{can}更好地节制该站点滴通讯量。譬如,经过在低优先级滴web站{stand}点上局限带宽,你可以{can}放宽对他站点滴访问量滴局限。同样,当你指定到某个web站点滴联接数目时,你就可感到其余站点释放资源。设置系站点专用滴,应根据网络通讯量和运用变迁状况进展调剂。

---单击“局限可用于此web站点滴带宽”复选框,将其选中,可配置iis将网络带宽调整到选定滴最大带宽量,以千字节每秒(kb/s)为单位。

---单击web服务联接复选框,将其选中,可选择一定数量或者不限定数目标web服务联接。局限联接可使计算机资源能够用于其余进程。备注:每个浏览web站点滴客户机通常全运用大概三个联接。

6.单击主目录选项卡{card}。

---要是你想{think}运用存储在本土算计机上滴web内容,则单击“此算计机上滴目录”然后在本土路径框中键入你想要{want}滴路径。譬如,默认路径为c:\inetpub\wwwroot。备注:为了增添安栓性,请{please}别在根目录下创立web内容文件夹。

---要是要运用存储在另一台算计机上滴web内容,则单击“另1算计机上滴共享地位”,然后在卖弄滴网络目录框中键入所需地位。

---要是你要运用存储在另一个web地点滴web内容,则单击“重定向到url”,然后在“重定向到”框中键入所需地位。在“客户会{can}送去”下,单击相应滴复选框,将其选中。

7.单击文档选项卡{card}。请注意可由iis用作默认启动文档滴文档列表。要是你要运用index.html作为启动文档,就一定添加它{it}。添加方式系:

a.单击添加。

b.在添加默认文档对话框中,键入index.html,然后单击肯定。

c.单击向上{up}箭头按钮,直到index.html卖弄在列表滴顶部。

8.单击肯定,闭合默认web站点属性对话框。

9.右键单击默认web站点,然后单击权限。

10.请注意在此web站{stand}点上具备操控权限滴用户帐户。单击添加添加其余可操控此web站点滴用户帐户。

11.单击肯定,返回到“internet信息服务”窗口。

12.右键单击默认web站点,然后单击休止。

13.右键单击默认web站点,然后单击开端。

windows2003上装置oa体格要注意{lookout}:怎么样启用asp支持:

windowsserver2003默认装置,系不装置iis6滴,需要此外装置。装置完iis6,还需要独自开启关于asp滴支持。方式系:控制面板-倌理工具-web服务扩充-activeserverpages-准许。

q:asp文档包括文档的时候提醒activeserverpages故障_asp0131_不容许滴父路径,怎么样解决?

a:在站点属性中选择主目录-配置-应用程序选项,将“启用父目录”选上。

q:登陆oa体格提醒“未发现oa所一定文档”,怎么样解决?

a:在oaserver滴文档夹上选择属性-按栓-选择user组,将一切权限打开,点击“高档”,把“重置一切对象权限并准许传播可继承权限”勾上,点击“肯定”两次,稍后登陆即可

14.iis不可下载文档滴毛病滴解决方法系把步入网站滴属性。查看主目录里面滴履行权限。设置成纯蓝本

runas/profile/user:ourcomputeradministrator"mmc

gpedit.msc"”

7.单击“worldwideweb服务”,然后单击详细信息,以查看iis可选子组件(如

THE END
1.“慕课出海”,中国数字教育成果何以“远航”?“近年来,慕课在全球范围内显著扩大了高等教育的可及性。”当地时间12月12日至13日,2024世界慕课与在线教育大会在英国伦敦举办,联合国教科文组织教育助理总干事斯特凡尼娅·詹尼尼在大会期间通过视频致辞如是表示。 慕课,是数字技术与高等教育深度融合产生的大https://mp.weixin.qq.com/s?__biz=MzA4NzA0NjEwMg==&mid=2649815619&idx=2&sn=931a729ac7865668c0ef9962983a0e5e&chksm=89311d227fd3a1e0f4ba39880218b7f3302a77d2856eb58e3cf43a357fd9ca55a1bb52b4d6fd&scene=27
2.免费or收费:MOOC平台Coursera的盈利模式设计免费or收费:MOOC平台Coursera的盈利模式设计 撇开商业利益和价值,在线教育免费or收费,又是怎么一回事?教育是一种社会责任,盈利模式不能照搬商品经济的模式,应该是教育使命、教育本质、用户心理、商业价值的一种全新的思考。讲到在线教育,第一次给我启蒙的有Coursera、可汗学院和网易教育。那也是我第一次觉得在线http://baijiahao.baidu.com/s?id=1589759964532864304&wfr=spider&for=pc
3.北京师科阳光信息技术有限公司北京师科阳光信息技术有限公司 师科阳光 师科http://www.wkmk.com/
4.慕课网安卓版慕课网8.5.9下载怎么样?是不是感到一丝丝满足呢?至于iPad版…额…还是设计中吧…不积跬步,无以成千里;不积小流,无以成江海;不常来慕课网,无以成编程达人啊!慕课网 6.2.1 中的新功能慕课网v6.2.11.新增后台听声2.新增小屏播放慕课网 6.2.2 中的新功能慕课网v6.2.21.优化播放器学习体验2.修正已知BUG慕课网 6.2.3 中的https://app.zol.com.cn/android/51973.html
5.自学自考本科学习资料网站慕课网(imooc)是国内的IT技能学习平台之一,提供了丰富的编程、前端、后端等技能课程。对于自学自考本科学习者而言,选择适合自己的课程进行系统化地学习,将会极大地提升其考试水平。 这些自学自考本科学习资料网站都是非常值得推荐的。在自学自考的过程中,选择适合自己的学习资料和平台进行系统化地学习,将会极大地提升我们的https://www.zikao35.com/109633.html
6.如何下载慕课网视频中国大学慕课是什么最近引发大家的关注,相信大家都想知道这件事会有怎么样的发展?下面就让小编为大家介绍一下,一起来看看吧。 如何下载慕课网视频? 1、打开Mooc网站并找到所需视频,在视频详情页中点击播放按钮。 2、点击浏览器左上角的标志(通常是uc字母)-->选择工具-->点击开发者工具;或者可以直接按下F12键打开开发者工具。https://www.duote.com/tech/202311/515208.html
7.为什么慕课网经常进不去?慕课网是IT编程技能学习平台,帮助许多人实现了成为程序员的梦想。但有时候你可能会遇到无法访问、加载不全等情况,这是怎么回事呢?这可能和浏览器、网络、服务器三者有关。 1、浏览器问题 网页无法访问可能和多种浏览器问题有关,比如浏览器缓存过多、浏览器版本过低、浏览器内核与网站适配度不好、浏览器设置不当等等https://www.91ajs.com/information/often-cannot-access-mooc.html
8.慕课网java源码51CTO博客已为您找到关于慕课网java源码的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及慕课网java源码问答内容。更多慕课网java源码相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/mukewangjavayuanma.html
9.我要自学网和慕课网3d溜溜设计问答平台为广大设计师们提供各种我要自学网和慕课网问题解答,3d溜溜素材问答平台汇聚全球各地的设计师、名师名司、设计爱好者等设计灵感和经验,迅速为您解决我要自学网和慕课网的困惑。https://www.3d66.com/answers_relation/relation_2913215.html
10.微课慕课网(国家提供的免费网课平台)中国大学MOOC(慕课)是国内的中文MOOC学习平台,由爱课程网携手网易云课堂打造。平台拥有包括985高校在内提供的千余门课程,其中首批获得认定的国家精品在线开放课程322门,占2017年获得认定课程总数的67%。 慕课网(IMOOC)是IT技能学习平台。 慕课网app怎么样?慕课网APP,涵盖Java,前端,安卓,Python,大数据等主流技术语言课程http://tianchuang789456.51sole.com/companynewsdetail_251488469.htm
11.慕课网“顶尖分享”上线,时效课程赢得用户芳心慕课网课程分享其实,青衿过去经常到慕课网学习,但因为工作忙碌的原因,他觉得课程好就学下去,很少去关注网站的其它内容。网站的这些内容是怎么来的呢?他灵光一现想到了在这个网站上认识的一位学霸级好友happypeter,他经常到网站上来学习,对网站肯定相当了解。他直接打电话给happypeter让他上线,有急事要找。https://blog.csdn.net/jamest8/article/details/42971883
12.最适合晚上睡不着看的8个网站,建议收藏哦一个涵盖了几乎所有编程教程的文档网站,不出意外你查询的所有API都可以在这里找到,不仅限于于前端、后端,还包括设计模式、工具等。 官网:https://www.runoob.com/ 2. 慕课网 一个涵盖了几乎所有你想学习技术的视频教程的网站,有免费的也有付费的,免费的基本以后达到入门级别了。 https://cloud.tencent.com/developer/article/1974516
13.慕课学习范文12篇(全文)慕课网最初是免费开放的交流IT技能的学习平台, 如今该网增设了中学课程、大学课程、综合课程等, 学习者可以根据自己的需要进行学习, 网站资源丰富, 能够满足各类学习者的需要, 可以实现个性化学习。 目前, 慕课网站注册的用户很多, 但实际上真正依靠慕课学习的学习者很少, 导致这一结果的根本原因是慕课网本身存在以下https://www.99xueshu.com/w/ikeyj3ymcxia.html
14.头条文章这是一个IT技能学习平台,号称是程序员的梦工厂。慕课网(IMOOC)提供了丰富的移动端开发、php开发、web前端、android开发以及html5等视频教程资源公开课。 演讲视频 01 一席 https://yixi.tv/ 听君一席话,胜读十年书。如果从方便理解的角度讲,你可以把一席理解为中国人自己的TED。它经常会邀请各界名人来https://weibo.com/ttarticle/x/m/show/id/2309404471197294264664?_wb_client_=1&object_id=1022%3A2309404471197294264664&extparam=lmid--4474303372388801&luicode=10000011&lfid=1076032445399183
15.实战课程慕课网实战课程结合视频快捷方便的体验,并与视频同步学习,边编程边看视频。https://coding.imooc.com/learn/workdetail/44145