Python点对点网络
我想自己制作一种加密货币。我不想只是重新编译比特币的源代码然后改个名字。我想从头开始做,这样可以学到更多东西。我在考虑用Python作为实现的编程语言,但我听说Python在性能方面不是最好的。我的问题是,用Python写的网络在面对可能有数百万个用户时,能表现得好吗?(我知道这不太可能发生,但我想让我的网络具备扩展性。)
2 个回答
2
没有什么能比老牌的C语言在性能上更出色了。不过,如果你打算让程序能够在多个CPU上同时运行,我建议你试试Haskell。它本身就支持并行处理,所以你不需要额外花力气去优化。
在C语言中,你也可以使用OpenMP和Cilk来实现类似的功能,只需要用到一些特别的指令。
祝你好运!
2
这要看你用Python做哪一部分了。网络本身是受输入输出限制的,所以用Python而不是C/C++等语言,客户端的性能下降不会太明显。你选择的加密算法也会对性能产生很大影响,比如验证交易的速度等等。
至于“挖矿”这件事,用Python来做就有点不合适,因为这主要是依赖CPU的工作。实际上,使用GPU(图形处理器)来处理这种可以同时进行大量计算的任务会更好,比如用CUDA或OpenCL就非常合适。