
Chinese President Hu Jintao has opened the world 's highest railway , describing it as a " magnificent feat " . The Qinghai-Tibet line boasts high-tech engineering to stabilise tracks over permafrost and sealed cabins to protect passengers from the high altitude . China says the 1,140km ( 710-mile ) line will bring major opportunities to a poor region . But critics fear it will be used by China to assert its control over a contested border region . They also say the railway line threatens not only the delicate Himalayan environment , but also the ancient Tibetan culture . Red ribbon Mr Hu cut a red ribbon before the first train left Golmud in China 's Qinghai province , carrying 900 passengers to the Tibetan capital , Lhasa . Follow the route of the China-Tibet railway " This is a magnificent feat by the Chinese people , and also a miracle in world railway history , " Mr Hu said . He said it showed China 's people were " ambitious , self-confident and capable of standing among the world 's advanced nations " . There have been protests against the railway , such as this in India Musicians in traditional Tibetan and Chinese dress banged drums and cymbals as thousands of workers who helped to build the line looked on . Minutes later , state TV showed another train departing Lhasa for Golmud . On Friday , three foreign activists were briefly detained at Beijing 's central railway station on Friday after unfurling a banner that read : " China 's Tibet Railway : Designed to Destroy . " At its highest point , the railway will reach 5,072m ( 16,640ft ) - beating by 225m a route through the Peruvian Andes that was previously the world 's highest railway , the China Daily newspaper reports . In parts , the train line has been built on bridges elevated above the most unstable permafrost . Elsewhere , cooling pipes have been sunk into the ground to ensure it remains frozen to stabilise the tracks . QINGHAI-TIBET RAILWAY Connects Lhasa to existing China rail network New 1,140km stretch cost $ 4.2bn World 's highest railway , reaching 5,072m Oxygen to be pumped into each carriage Restaurant car 's rice cooked in pressure cookers , to mitigate effects of high altitude Beijing to Lhasa to take 48 hours , cost $ 50-$160 one way In pictures : New railway Railway raises fears Send us your comments The train carriages have windows with ultra-violet filters to keep out the sun 's glare , as well as carefully regulated oxygen levels with spare supplies to combat the thin air . Zhu Zhensheng of the Chinese railway ministry called the new line a " major achievement " that will " hugely boost local development and benefit the local people " . But exiled Tibetan Lhadon Tethong said the railway was " engineered to destroy the very fabric of Tibetan identity " . " China plans to use the railway to transport Chinese migrants directly into the heart of Tibet in order to overwhelm the Tibetan population and tighten its stranglehold over our people , " he said on a Free Tibet Campaign statement . The Dalai Lama , Tibet 's spiritual leader in exile since 1959 , was more circumspect . " The railway line itself is not a cause of concern for the Tibetan people , " his spokesman , Thupten Samphel , said . " How it will be used is the main concern . " 