# Authenticity, and Approval Framework for Bus Transportation Based on Blockchain 2.0 Technology
## 6 Methodology  
This study employs a structured approach to constructing a blockchain system for bus approval. Specifically, we employ a framework based on the Ethereum blockchain. The reason behind selecting Ethereum as the underlying blockchain technology will be elucidated in the subsequent sections. Developing Blockchain Framework  
The complete application process from the bus company registering itself for approval is fostered. The process includes all the stakeholders, i.e., the bus company, the coordinator, and the administration, as shown in Figure 3. The bus company requests the coordinator  
Figure 2: Proposed usecase scenario. for portal access. After successful registration, the company then applies for approval. The coordinator and the administrator can also access and view the pending application as well as the approved application on their respective dashboards. It also shows the data transfer process to the interplanetary file system (IPFS), which is then logged onto the blockchain. The IPFS is a distributed file system that allows data sharing and storage in peer-to-peer mode. It solves several problems associated with traditional client-server file systems, assures data security, preserves users' privacy, and enables scaled communications. Unlike the location-addressing approach used by HTTP and other protocols, the IPFS searches for data by using content addressing. Using the interplanetary linked data (IPLD) protocol, the IPFS may share information with blockchain and smart contracts. The IPFS's major components are distributed hash tables for routing(DHT), Merkle trees for encryption, and directed acyclic graphs for representations (DAG). The IPFS decentralization delivers low latency and high throughput while also making the system safe and tamper-proof. For all these transactions and processes to be completed, fees are charged, which are deducted from the user wallet, i.e., \"Metamask\" in our implemented approach. In Figure 4, we present the sequence diagram depicting the registration and authentication procedures. Within this context, the user, representing the bus company, initiates the process of gaining access to the bus company portal by means of registration through an online form. The form requests key credentials from the user. Upon the successful submission of the credentials, which also include the Metamask key of the user, used for transactions in the blockchain, access is granted to the user. Metamask is a software cryptocurrency wallet that serves as a gateway to the Ethereum blockchain. It facilitates users to access their Ethereum wallet, using either a mobile application or a web browser extension. This accessibility enables users to seamlessly interact with decentralized applications. Metamask, as one of the meta-transaction implementations, is useful to both users and developers. Metamask simplifies the use of the Ethereum network, particularly for users who may not be acquainted with its operations. It handles complex tasks, such as creating and managing Ethereum accounts, handling keys and wallets, and related procedures. Similarly, developers can easily interface with the Ethereum application programming interface (API) on a global scale, streamlining their development process. Furthermore, a decentralized application (DApp) is used to connect to the network without synchronizing a complete node, because it routes the connection over an Ethereum node provider [64]. The credentials are then transferred to the smart contracts and, if the conditions are met, the mentioned user can access the portal using his Metamask key. Figure 3: Application approval process. At this stage, the user has obtained access to the portal, which serves as the platform for submitting applications and seeking approval for bus-related activities. This particular process is illustrated in Figure 5. The bus company uploads an application to the portal; a sample file is also provided to instruct the user about the template of the file to be uploaded.