Techniques for Using Server-side Node.js Modules with the Truffle Ethereum Development Framework

  • Authors

    • Hyun-Min Eom
    • Jae-Hwan Jin
    • Myung-Joon Lee
    https://doi.org/10.14419/ijet.v8i1.4.25455
  • Ethereum, Decentralized Application, Truffle, Function Gateway, Blockchain.
  • Truffle is a framework that provides compiling, testing and systematic project management for developing Ethereum decentralized applications. As of now, Truffle provides a way to easily deal with bundling node.js modules of decentralized application using the webpack tool. However, due to the Truffle project structure, server-side node.js modules such as network communication modules are not usable in a direct way.  In this paper, to address this issue, we propose a method to use server-side node.js modules through Ethereum smart contracts and event processing mechanism. In the proposed method, a separate node application is associated to the server-side module to execute the module in response to the request of the decentralized application. To this end, we introduce the notion of function gateway, a smart contract for connecting two applications with Ethereum's event-watch processing technique. Also, to use the function gateway contract in a robust way, we introduce a robust function gateway that includes the process of confirming whether or not the event-watch has occurred and the node.js module function has been executed. In addition, we present a decentralized application using node.js module for sending actual e-mails based on the function gateway.

     

  • References

    1. [1] W. Gavin, “Ethereum: A secure decentralised generalised transaction ledgerâ€, Ethereum Project Yellow Paper, Vol. 151, (2014)

      [2] A. Kosba, A. Miller, E. shi, and Z. Wen, Hawk: The blockchain model of cryptography and privacy-preserving smart contracts, Security and Privacy (SP), 2016 IEEE Symposium on. IEEE (2016), pp.839-858.

      [3] G. Zyskind et al., "Decentralizing privacy: Using blockchain to protect personal data", Security and Privacy Workshops (SPW), (2015) IEEE, pp. 180-184.

      [4] Ethereum Dapps, http://dapps.ethercasts.com/

      [5] J. H. Jin, H. M. Eom, J. E. Sun, and M. J. Lee, "A Blockchain-based Public Opinion Polling Solution Supporting Robust Verification", In: Proceedings of Convergence Research Letter (2017), Vol. 3, No. 3, pp. 245-248.

      [6] Solidity, https://solidity.readthedocs.io/

      [7] A. Bogner, M. Chanson and A. Meeuw, "A decentralised sharing app running a smart contract on the ethereum blockchain.", Proceedings of the 6th International Conference on the Internet of Things, (2016), pp. 177-178.

      [8] Truffle, https:// github.com/trufflesuite/truffle/.

      [9] Node.js, https://Node.js.org/.

      [10] Webpack, https://webpack.js.org/.

      [11] H. M. Eom, J. H. Jin, and M. J. Lee, "A Technique for Sending Email in association with the Truffle Ethereum Development Framework", International Journal of Private Cloud Computing Environment and Management (2018), Vol. 5, No. 1, pp. 1-6

      [12] V. Buterin, “A next-generation smart contract and decentralized application platformâ€, Ethereum project white paper, (2014).

      [13] H. Watanabe, S. Fujimura, A. Nakadaira, Y. Miyazaki, A. Akutsu, and J. Kishigami, "Blockchain contract: Securing a blockchain applied to smart contracts", 2016 IEEE International Conference on Consumer Electronics (ICCE), (2016), pp. 467–468.

      [14] S. Nakamoto, "Bitcoin: A peer-to-peer electronic cash system", (2008)

      [15] Nodemailer, https://nodemailer.com/

  • Downloads

  • How to Cite

    Eom, H.-M., Jin, J.-H., & Lee, M.-J. (2019). Techniques for Using Server-side Node.js Modules with the Truffle Ethereum Development Framework. International Journal of Engineering & Technology, 8(1.4), 448-457. https://doi.org/10.14419/ijet.v8i1.4.25455